home *** CD-ROM | disk | FTP | other *** search
Text File | 2001-02-03 | 195.8 KB | 4,608 lines |
- Frequently Asked Questions (with answers) for Java programmers
-
- _____________________________________________________
- ________| |________
- \ | Java Programmers FAQ http://www.afu.com | /
- \ | Last modified Feb 20, 1999 Peter van der Linden | /
- / |_____________________________________________________| \
- /___________) (__________\
-
- ╧σpσΓσΣσφε φα p≤±±ΩΦΘ τ√Ω:
-
- Andrew Kuksov, 2:5030/731.71
- └δσΩ±αφΣp, kab@vsi.vrn.ru
- Andrew Ter╕shechkin, 2:5004/21.28
- └δσΩ±σΘ ╧εΣεδ ΩΦφ, aleksey@astrologicalrobot.com
- George Djioev, 345:817/2.18@RemoteAccessNetwork
- bii714@cclib.nsu.ru
- dm@aspec.ru
- pm27sdw@beta.math.spbu.ru
- lavris@lutsk.ukrpack.net
- Leonid Volkanin, 2:5080/80.42
- Dennis Adamchuck, 2:5020/1469
- Wowa Bushin, 777:5030/42.11
- ┬εpεφΩεΓ └δσΩ±σΘ, otk.unets.ru!vaa@otk.unets.ru
- Igor Philippov, 2:450/129.13
- Dmitry Melamud, 2:467/28.40
-
- > ╟Σσ±ⁿ ∞επ≤≥ ß√≥ⁿ ┬α°Φ Φ∞σφα ;)
-
- JAVA FAQ ∩pσΣφατφα≈σφ Σδ δ■ΣσΘ, ≤µσ Φ∞σ■∙Φ⌡ φσΩε≥εp√Θ ε∩√≥
- ∩pεπpα∞∞ΦpεΓαφΦ , ∩≤±≥ⁿ Σαµσ φα τ√Ωα⌡, ε≥δΦ≈φ√⌡ ε≥ Java.
-
- ╟αΘΣΦ≥σ φα FAQ home page φα http://www.afu.com Σδ ∩εδ≤≈σφΦ ∩pε≈σΘ
- Φφ⌠εp∞α÷ΦΦ ∩ε Java, α ≥αΩµσ ßεδσσ φεΓεΘ Γσp±ΦΦ ²≥επε FAQ. ┬±σ Γα°Φ
- ∩pσΣδεµσφΦ , Ωα±α■∙Φσ±ⁿ ²≥επε FAQ, ε≥±√δαΘ≥σ ∩ε αΣpσ±≤ afu.com.
-
- ------------------------------------------------------------------------
-
- ─αφφ√Θ Java FAQ ±ε±≥εΦ≥ Φτ ±δσΣ≤■∙Φ⌡ ≈α±≥σΘ:
-
- * 1. ╚φ⌠εp∞α÷Φ ε ΩφΦπα⌡ ∩ε Java
- * 2. ┴√±≥p√Θ ±≥αp≥
- * 2.5 ╧σpσφε±Φ∞ε±≥ⁿ
- * 3. ╬ß∙α Φφ⌠εp∞α÷Φ
- * 4. ╩ε∞∩Φδ ≥εp√ Φ ≤≥ΦδΦ≥√
- * 5. ╤εεß∙σφΦ Ωε∞∩Φδ ≥εpα
- * 6. ╥p≤Σφε±≥Φ, ΓετφΦΩα■∙Φσ ∩pΦ ∩pεπpα∞∞ΦpεΓαφΦΦ φα τ√Ωσ Java
- * 7. I/O (┬ΓεΣ/Γ√ΓεΣ)
- * 8. ╤δεµφε±≥Φ ∩pΦ pαßε≥σ ±ε ±≥αφΣαp≥φ√∞Φ ßΦßδΦε≥σΩα∞Φ
- * 9. ─α≥α Φ Γpσ∞
- * 10. AWT
- * 11. Swing
- * 12. ┴pα≤τσp√
- * 13. └∩∩δσ≥√
- * 14. ╠≤δⁿ≥Φ∞σΣΦα
- * 15. ╨αßε≥α ± ±σ≥ ∞Φ
- * 16. ┴στε∩α±φε±≥ⁿ
-
- > Hα ²≥ε∞ ≥ε≥ FAQ, Ωε≥εp√Θ ≤ ∞σφ , ±≥pαφφ√∞ εßpατε∞ εßp√Γασ≥± . ╧ε²≥ε∞≤
- > φ≤µφ√ 16,17,18,19,20,21 ≈α±≥Φ.
-
- * 17. For C, C++ Afficionados
- * 18. Java Idioms
- * 19. Java Gotcha's
- * 20. Further Resources
- * 21. Acknowledgements
-
- ------------------------------
-
- 1. ╚φ⌠εp∞α÷Φ ε ΩφΦπα⌡ ∩ε Java
-
- 1. (╫α±≥ⁿ 1) ╩αΩ≤■ ΩφΦπ≤ ∩ε Java ∞φσ Γ√ßpα≥ⁿ?
-
- [*] ╬Σφετφα≈φεπε ε≥Γσ≥α φα Γε∩pε± "ΩαΩ≤■ ΩφΦπ≤ ∩ε Java ∞φσ Γ√ßpα≥ⁿ?"
- φσ ±≤∙σ±≥Γ≤σ≥.
- ╠φεπεσ ταΓΦ±Φ≥ ε≥ ≥επε, ±ΩεδⁿΩε ┬√ ≤µσ τφασ≥σ, α ≥αΩµσ ε≥
- ≥επε, ΩαΩ Γα∞ ßεδⁿ°σ φpαΓΦ≥ⁿ± εß≤≈α≥ⁿ± .
- ┼±δΦ ≤ ┬α± ≤µσ σ±≥ⁿ ε∩√≥ ∩pεπpα∞∞ΦpεΓαφΦ φα ΩαΩε∞-δΦßε τ√Ωσ,
- ε≥δΦ≈φε∞ ε≥ Java, Φ ┬√ ⌡ε≥Φ≥σ Φτ≤≈Φ≥ⁿ ╥εδⁿΩε ±α∞ ∩pΦφ÷Φ∩ Java,
- εßpα≥Φ≥σ ±Γεσ ΓφΦ∞αφΦσ φα ΩφΦπ≤ αΓ≥εpα ²≥επε FAQ Just Java 1.2
-
- ┬± Φφ⌠εp∞α÷Φ ≤Σεßφε pα±∩εδεµσφα Γ εΣφε∞ ≥ε∞σ (ε±φεΓ√ τ√Ωα, Swing,
- pαßε≥α ± ±σ≥ ∞Φ, ΓΓεΣ/Γ√ΓεΣ Φφ⌠εp∞α÷ΦΦ, Σε±≥≤∩ Ω ßατα∞ Σαφφ√⌡ Φ ≥.∩.).
- ╩ ΩφΦπσ ∩pΦδαπασ≥± CD ± επpε∞φ√∞ ΩεδΦ≈σ±≥Γε∞ Java α∩∩δσ≥εΓ, Φπp,
- ∩pΦδεµσφΦΘ, ∩pΦ≈σ∞ Γ±σ ²≥ε ± Φ±⌡εΣφ√∞√∞ ≥σΩ±≥ε∞. ╩pε∞σ ²≥επε, φα CD
- σ±≥ⁿ σ∙σ ∞φεπε Γ±σπε ∩εδστφεπε Φ Φφ≥σpσ±φεπε (Ωε∞∩Φδ ≥εp√ Java Σδ
- Windows, Mac, Linux, Solaris (sparc Φ x86). ─ε∩εδφΦ≥σδⁿφα Φφ⌠εp∞α÷Φ
-
- ┼±δΦ ┬α∞ φσΣε±≥α≥ε≈φε Φφ⌠εp∞α÷ΦΦ ∩ε ≥σ⌡φεδεπΦΦ Java, thin
- clients, CORBA, TCP/IP, Java beans, Φ ≥.∩., ∩ε±∞ε≥pΦ≥σ
- ΩφΦπ≤ Not Just Java αΓ≥εpα FAQ.
- [Image]
- ▌≥α ΩφΦπα φσ φα≤≈Φ≥ ┬α± ∩pεπpα∞∞ΦpεΓαφΦ■ φα Java; εφα
- ∩ε∞εµσ≥ ┬α∞ ≤πδ≤ßΦ≥ⁿ τφαφΦ Γ ²≥εΘ εßδα±≥Φ. ─ε∩εδφΦ≥σδⁿφα
- Φφ⌠εp∞α÷Φ
-
- ╥Φ∩εΓ√σ πδαΓ√ (Φτ ±≥αp√⌡ ΦτΣαφΦΘ) φα⌡εΣ ≥± φα web-±≥pαφΦ÷σ Sun
- Microsystems: http://www.sun.com/.
- ╧pΦ Γ√ßεpσ ΩφΦπΦ ∩ε Java εßpα≥Φ≥σ ΓφΦ∞αφΦσ φα ±δσΣ≤■∙σσ:
- o ╧pσµΣσ Γ±σπε, φ≤µφε ≤Σε±≥εΓσpΦ≥ⁿ± , ≈≥ε ²≥ε - ΩφΦπα ∩ε Java. ┼±δΦ
- εφα ∩ε±≥αΓδ σ≥± ± CD, ±δσΣ≤σ≥ ∩pεΓσpΦ≥ⁿ, σ±≥ⁿ δΦ φα φσ∞
- Ωε∞∩Φδ ≥εp Java. J++ Γδ σ≥± Σp≤πΦ∞ τ√Ωε∞ Γ Φτ-τα φσΩε≥εp√⌡ σπε
- ε≥δΦ≈ΦΘ ε≥ εpΦπΦφαδⁿφεπε τ√Ωα Java. ╩pε∞σ ≥επε, Γ J++
- ε≥±≤≥±≥Γ≤■≥ φσΩε≥p√σ ∩ε±δσΣφΦσ ßΦßδΦε≥σΩΦ Java (Swing,
- Collections, JFC, RMI).
- ┼±δΦ ┬√ Φφ≥σpσ±≤σ≥σ±ⁿ Java, ε±≥αΓⁿ≥σ ΩφΦπ≤ ∩ε J++ ∩√δΦ≥ⁿ± φα
- ∩εδΩσ.
- o ╤εε≥Γσ≥±Γ≤σ≥ δΦ Φφ⌠εp∞α÷Φ , ∩pσΣ±≥αΓδσφφα Γ ΩφΦπσ, ≥σΩ≤∙σ∞≤
- ≤pεΓφ■ pατΓΦ≥Φ Java (Java 1.2 [aka Java 2])? ╧ε±∞ε≥pΦ≥σ,
- ∩pΦ±≤≥±Γ≤σ≥ δΦ "JApplet" Γ ∩pσΣ∞σ≥φε∞ ≤Ωατα≥σδσ. ┼±δΦ φσ≥, ≥ε,
- Γετ∞εµφε, ┬α∞ φ≤µφα ßεδσσ ±εΓpσ∞σφφα ΩφΦπα.
- o ╧pεΓσpⁿ≥σ, Φ∞σσ≥ δΦ ΩφΦπα Σε±≥α≥ε≈φεσ ΩεδΦ≈σ±≥Γε ±⌡σ∞, ΣΦαπpα∞∞ Φ
- pΦ±≤φΩεΓ. ╬≈σφⁿ ±δεµφε εß· ±φΦ≥ⁿ (∩pαΩ≥Φ≈σ±ΩΦ φσΓετ∞εµφε)
- ∩pεπpα∞∞ΦpεΓαφΦσ ±Φ±≥σ∞ εΩεφ ßστ pΦ±≤φΩεΓ Φ ΣΦαπpα∞∞. ╥αΩµσ,
- pΦ±≤φΩΦ ε≈σφⁿ ≈α±≥ε ∩ε∞επα■≥ ∩εφ ≥ⁿ ±∞√±δ ≥σΩ±≥α.
- o ╧pε≈Φ≥αΘ≥σ αφφε≥α÷Φ■ Ω ΩφΦπσ. ┬ φσΘ πεΓεpΦ≥ⁿ± , ≈≥ε εφα Σδ
- ∩pε⌠σ±±ΦεφαδεΓ Γ ∩pεπpα∞∞ΦpεΓαφΦΦΦ φα Java? ╩φΦπα ∞εµσ≥ Γ√±≥≤∩α≥ⁿ
- Γ pεδΦ "╩pσ∩Ωεπε εpσ°Ωα Java" Φ "Java-αδⁿ∞αφα⌡α". ┬√∞ ²≥ε φ≤µφε,
- ΦδΦ ┬√ ∩pσΣ∩ε≈Φ≥ασ≥σ ΩφΦπ≤, Γ Ωε≥εpεΘ εß≤≈σφΦσ ε±φεΓαφε φα
- ∩pΦ∞σpα⌡ Φ ∩ε ±φσφΦ ⌡?
- o Hσ ∩ε∞σ°ασ≥ ετφαΩε∞Φ≥ⁿ± ± ∩pσΩpα±φ√∞Φ ±εΓσ≥α∞Φ Peter'α Norvig'α
- ∩ε Φτ≤≈σφΦ■ τ√ΩεΓ ∩pεπpα∞∞ΦpεΓαφΦ .
- o ╬÷σφΦ≥σ ±ΓεΘ ±εß±≥Γσφφ√Θ ≤pεΓσφⁿ τφαφΦΘ: Γδ σ≥σ±ⁿ δΦ ┬√ ε∩√≥φ√∞
- ∩pεπpα∞∞Φ±≥ε∞ φα ΩαΩε∞-δΦßε Σp≤πε∞ τ√Ωσ ΦδΦ ┬√ Φτ≤≈ασ≥σ
- ∩pεπpα∞∞ΦpεΓαφΦσ "± φ≤δ "? ╤εε≥Γσ≥±≥Γ≤σ≥ δΦ ΩφΦπα ┬α°σ∞≤ ≤pεΓφ■
- τφαφΦΘ?
- o ╧pε≈Φ≥αΘ≥σ ≈α±≥ⁿ ΩφΦπΦ. ┬√ ταΦφ≥σpσ±εΓαδΦ±ⁿ ≥σ∞, ≈≥ε ┬√
- ∩pε≈Φ≥αδΦ? ┬α∞ φσ φα±Ω≤≈Φ≥ ²≥α ΩφΦπα ∩ε±δσ ≥επε, ΩαΩ ┬√
- ∩pε≈Φ≥ασ≥σφσ±ΩεδⁿΩε ±≥pαφΦ÷? ╠εµσ≥, ΩφΦπα ±δΦ°Ωε∞ ΓσδΦΩα Σδ
- φα≈αδα?
- o ┼±δΦ Ω ΩφΦπσ ∩pΦδαπασ≥± CD, ≥ε ΩαΩ ∞φεπε φα φσ∞ ∩pεπpα∞∞φεπε
- εßσ±∩σ≈σφΦ ? ┬√ Σεδµφ√ ß√≥ⁿ ταΦφ≥σpσ±εΓαφ√ Γ ≥ε∞, ≈≥ε φα ²≥ε∞ CD
- σ±≥ⁿ, ∩ε ΩpαΘφσΘ ∞σpσ, Ωε∞∩Φδ ≥εp Java, α ≥αΩµσ Γ±σ ∩pΦ∞σp√ Φτ
- ²≥εΘ ΩφΦπΦ. ┴≤Σσ≥ δΦ Ωε∞∩Φδ ≥εp Java pαßε≥α≥ⁿ φα ┬α°σΘ ∩δα≥⌠εp∞σ
- (Mac, Linux Φ ≥.∩.)?
-
- ╠φεπΦσ δ■ΣΦ ∩εΩ≤∩α■≥ Σδ φα≈αδα εΣφ≤ ΩφΦπ≤, τα≥σ∞ σ∙σ φσ±ΩεδⁿΩε,
- ∩ε±ΩεδⁿΩ≤ µσδα■≥ ∩εδ≤≈Φ≥ⁿ Σε∩εδφΦ≥σδⁿφ≤■ Φφ⌠εp∞α÷Φ■. └Γ≥εp FAQ τα
- ∩ε±δσΣφΦσ ≥pΦ πεΣα ∩pΦεßpσδ Φ ∩pε≈σδ εΩεδε 60 ΩφΦπ ∩ε Java.
-
- 2. (╫α±≥ⁿ 1) ├Σσ ∞επ≤ φαΘ≥Φ ±∩Φ±εΩ ΩφΦπ ∩ε Javaα ≥αΩµσ Φ⌡ Ωpα≥ΩΦσ
- εßτεp√?
-
- [*] ┬ε≥ φσΩε≥εp√σ φσ∩δε⌡Φσ ±±√δΩΦ:
- http://www.geocities.com/RainForest/Canopy/4774/Java/education.html
- ≥αΩµσ
- http://www.flathill.com/languages/java/
- ≥αΩµσ
- http://www.fastgraph.com/books/java.html
- ≥αΩµσ
- http://teamjava.com/links/tj-srv.cgi?MUF=0,tj-booklist.muf
- ≥αΩµσ
- http://www.javaworld.com/javaworld/books/jw-books-index.html
- (ßεδσσ ∩εδφ√Θ ±∩Φ±εΩ ∩ε≥pσß≤σ≥ ±δΦ°Ωε∞ ∞φεπε Γpσ∞σφΦ Σδ ταπp≤τΩΦ ;-))
-
- ------------------------------
-
- 2. ┴√±≥p√Θ ±≥αp≥
-
- 1. (╫α±≥ⁿ 2) ╩αΩ ∩pε∙σ Γ±σπε φα≈α≥ⁿ ∩pεπpα∞∞ΦpεΓα≥ⁿ φα Java?
-
- [*] ╤δσΣ≤Θ≥σ ±επδα±φε ²≥Φ∞ pσΩε∞σφΣα÷Φ ∞.
- 1. ╧pε±∞ε≥pΦ≥σ "ΩφΦµφ≤■ ≈α±≥ⁿ" ²≥επε FAQ Σδ ≥επε, ≈≥εß√ Γ√ßpα≥ⁿ
- ±σßσ φαΦßεδσσ ∩εΣ⌡εΣ ∙≤■ ΩφΦπ≤. Hσ ±≤∙σ≥Γ≤σ≥ ΩαΩεΘ-≥ε εΣφεΘ
- ±εΓσp°σφφεΘ ΩφΦπΦ ∩ε Java. ┬√ßΦpαΘ≥σ ΩφΦπ≤, ±≥Φδⁿ, ≥σ∞∩,
- ∩εΣpεßφε±≥ⁿ Ωε≥εpεΘ ≤Σεßφ√ Σδ ┬α±. Amazon ±εΣσpµΦ≥ ∞φεπε
- Φφ⌠εp∞α÷ΦΦ Φ εßτεp√ ΩφΦπ ∩ε Java.
-
- 2. ╤Ωα≈αΘ≥σ ßσ±∩δα≥φ√Θ Ωε∞∩Φδ ≥εp Java ± http://java.sun.com
-
- 3. ╧pε≈Φ≥αΘ≥σ ßσ±∩δα≥φ√Θ Java tutorial ≥α∞ µσ (τα∩ε∞φΦ≥σ ²≥ε, ≥.Ω.,
- Γετ∞εµφε, ┬√ σ∙σ τα⌡ε≥Φ≥σ Γσpφ≤≥ⁿ± Ω φσ∞≤).
-
- 4. ╚τßσπαΘ≥σ ∩pεΣ≤Ω≥α Microsoft J++, Γ Ωε≥εpε∞ Σαµσ ∩ε ±δεΓα∞
- ∩pσΣ±≥αΓΦ≥σδσΘ microsoft pσαδΦτεΓαφα "πp τφα Java". ▌≥ε≥ ∩pεΣ≤Ω≥
- ß√δ pατpαßε≥αφ ßστ ±εε≥Γσ≥±≥ΓΦ ±≥αφΣαp≥α∞ Java Φ ±εΣσpµΦ≥
- ßεδⁿ°εσ ΩεδΦ≈σ±≥Γε ≤∞√°δσφφε ΓΩδ■≈σφφ√⌡ φσ±εΓ∞σ±≥Φ∞√⌡ Σδ
- pατδΦ≈φ√⌡ ∩δα≥⌠εp∞ ⌠≤φΩ÷ΦΘ, ΓΩδ■≈α φεΓ√σ Ωδ■≈σΓ√σ ±δεΓα τ√Ωα.
-
- 5. ╧pε±∞ε≥pΦ≥σ ²≥ε≥ FAQ φα ∩pσΣ∞σ≥ Γε∩pε±α, Γ√τΓαΓ°σπε ≤ ┬α±
- τα≥p≤ΣφσφΦσ. ╤Ωεpσσ Γ±σπε, ∞φεπΦσ δ■ΣΦ ≤µσ ∩pε⌡εΣΦδΦ ∩ε ²≥εΘ
- Σεpεπσ Σε ┬α±. ┬ FAQ ±εΣσpµα≥ⁿ± φσΩε≥εp√σ φαΩε∩δσφφ√σ Φ∞Φ
- τφαφΦ , α ≥αΩ µσ ±±δ√ΩΦ φα Σp≤πΦσ Φ±≥ε≈φΦΩΦ Φφ⌠εp∞α÷ΦΦ.
-
- 2. (╫α±≥ⁿ 2) ╧ε≈σ∞≤ ∞ε ∩pεπpα∞∞α "Hello World!" φσ Ωε∞∩ΦδΦp≤σ≥± ?
-
- [*] ┼±≥ⁿ ≥pΦ ε±φεΓφ√σ ∩pΦ≈Φφ√ ΓετφΦΩφεΓσφΦ ²≥εΘ ∩pεßδσ∞√:
- 1. ┴√δ δΦ Ωε∞∩Φδ ≥εp javac ≤±∩σ°φε τα∩≤∙σφ?
- ┬√∩εδφΦ≥σ
-
- javac -garbage
-
- Φ ∩ε±∞ε≥pΦ≥σ, ∩ε ΓΦ≥± δΦ φα ²Ωpαφσ ±εεß∙σφΦσ ε ∩pαΓΦδⁿφε∞
- Φ±∩εδⁿτεΓαφΦΦ. ┼±δΦ ≥αΩεπε ±εεß∙σφΦ φσ ∩ε ΓΦδε±ⁿ, ∩ε∩pεß≤Θ≥σ
- τ≤∩α±≥Φ≥ⁿ javac, ≤ΩαταΓ ∩εδφ√Θ ∩≤≥ⁿ Ω φσ∞≤ δΦßε ΣεßαΓⁿ≥σ Γ PATH
- ∩≤≥ⁿ Ω ΣΦpσΩ≥εpΦΦ, ±εΣσpµα∙σΘ javac.
- 2. ╧pαΓΦδⁿφε δΦ Φ±∩εδⁿτ≤σ≥± ∩σpσ∞σφφα εΩp≤µσφΦ CLASSPATH?
- ┬ JDK 1.0.2 τφα≈σφΦσ CLASSPATH Σεδµφε ß√δε ΓΩδ■≈α≥ⁿ Γ ±σß Φ
- ±Φ±≥σ∞φ√σ ßΦßδΦε≥σΩΦ Φ ┬α°Φ ±εß±≥Γσφφ√σ ßΦßδΦε≥σΩΦ.
- ┬ JDK 1.2 τφα≈σφΦ■ CLASSPATH ßεδⁿ°σ φσ ≥pσß≤σ≥± ∩pΦ±ΓαΦΓα≥ⁿ ∩≤≥Φ
- Ω ±≥αφΣαp≥φ√∞ ßΦßδΦε≥σΩα∞. ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ CLASSPATH Σδ
- ≤ΩαταφΦ ∩≤≥σΘ Ω "∩εδⁿτεΓα≥σδⁿ±ΩΦ∞ Ωδα±±α∞", Ωε≥εp√σ Γ√
- Φ±∩εδⁿτ≤σ≥σ.
- ─δ φα≈αδα, ┬√, Γετ∞εµφε, τα⌡ε≥Φ≥σ Φ∞σ≥ⁿ ΩαΩ ∞ΦφΦ∞≤∞ "." (≥σΩ≤∙α
- ΣΦpσΩ≥εpΦ ) Γ ±Γεσ∞ CLASSPATH.
- ╩επΣα τφα≈σφΦσ CLASSPATH ε°Φßε≈φε, javac ß≤Σσ≥ ±εεß∙α≥ⁿ ┬α∞ ε
- ≥ε∞, ≈≥ε φσ ∞εµσ≥ φαΘ≥Φ εß· ΓδσφΦ Ωδα±±εΓ, φα Ωε≥εp√σ ┬√
- ±±√δασ≥σ±ⁿ Γ ±ΓεσΘ ∩pεπpα∞∞σ. ─δ ∩εδ≤≈σφΦ Φφ⌠εp∞α÷ΦΦ εß
- ≤±≥αφεΓΩΦ CLASSPATH, ±∞ε≥pΦ≥σ ±εε≥Γσ≥±≥Γ≤■∙ΦΘ pατΣσδ FAQ
- 3. ╧pαΓΦδσφ δΦ Φ±⌡εΣφ√Θ ≥σΩ±≥?
- ┬ ²≥ε∞ ±δ≤≈ασ javac ß≤Σσ≥ Γ√ΣαΓα≥ⁿ ±εεß∙σφΦ εß ε°ΦßΩα⌡ Φ
- ∩pσΣ≤∩pσµΣσφΦ . ╤∞ε≥pΦ≥σ Γε∩pε±√ ε ±εεß∙σφΦ ⌡ Ωε∞∩Φδ ≥εpα Γ
- ±δσΣ≤■∙σΘ ±σΩ÷ΦΦ FAQ
-
- 3. (╫α±≥ⁿ 2) ╧ε≈σ∞≤ ∞ε ∩pεπpα∞∞α "Hello World!" φσ τα∩≤±Ωασ≥± ?
-
- [*] ┼±≥ⁿ ∩ ≥ⁿ ε±φεΓφ√⌡ ε°ΦßεΩ, Φτ-τα Ωε≥εp√⌡ ┬α°α VM (java ΦδΦ
- ßpα≤τσp) φσ ∞επ≤≥ Φ±∩εδφΦ≥ⁿ ┬α° Ωδα±±.
- 1. ┼±δΦ ┬√ ∩Φ±αδΦ α∩∩δσ≥, ┬√ Σεδµφ√ φα±δσΣεΓα≥ⁿ Ωδα±±
- java.applet.Applet. ╩εΣ ΦφΦ÷ΦαδΦτα÷ΦΦ ┬α°σπε α∩∩δσ≥α Σεδµσφ
- pα±∩εδαπα≥ⁿ± Γ ⌠≤φΩ÷ΦΦ init.
- ┼±δΦ ┬√ ∩Φ±αδΦ ∩pΦδεµσφΦσ, ≥ε ∩σpΓεΘ ß≤Σσ≥ Γ√τΓαφα ⌠≤φΩ÷Φ
- main(). Hσ φ≤µφε ±∞σ°ΦΓα≥ⁿ α∩∩δσ≥√ Φ ∩pΦδεµσφΦ , ∩εΩα ┬√ φσ
- φαßσpσ≥σ±ⁿ Σε±≥α≥ε≈φε ε∩√≥α.
- 2. ┬√ Σεδµφ√ εß· Γδ ≥ⁿ ±ΓεΘ ε±φεΓφεΘ Ωδα±± ΩαΩ "public". ┼±δΦ ²≥επε
- φσ ±Σσδα≥ⁿ, ≥ε φα εΣφΦ⌡ ±Φ±≥σ∞α⌡ ┬α°α ∩pεπpα∞∞α ß≤Σσ≥
- Γ√∩εδφ ≥ⁿ± , α φα Σp≤πΦ⌡ - φσ≥. ╬±φεΓφεΘ Ωδα±± - Ωδα±±,
- ±εΣσpµα∙ΦΘ ∞σ≥εΣ main() δΦßε, Γ ±δ≤≈ασ α∩∩δσ≥α, Ωδα±±,
- pα±°Φp ■∙ΦΘ java.applet.Applet.
- 3. ╚∞ ┬α°σπε Ωδα±±α Φ Φ∞ ⌠αΘδα Σεδµφ√ ≥ε≈φε ±εε≥Γσ≥±≥ΓεΓα≥ⁿ,
- Γ∩δε≥ⁿ Σε pσπΦ±≥pα ±Φ∞ΓεδεΓ. ┼±δΦ ┬α° Ωδα±± - HelloWorld, ┬α°
- Φ±⌡εΣφ√Θ ⌠αΘδ Σεδµσφ ß√≥ⁿ HelloWorld.java Φ Γα° ⌠αΘδ Ωδα±±α ß≤Σσ≥
- "HelloWorld.class".
- 4. ┼±δΦ ┬√ Φ±∩εδⁿτ≤σ≥σ ftp Σδ ταΩα≈ΩΦ ±Γεσπε α∩∩δσ≥α φα ±σpΓσp, ≥ε
- ┬√ Σεδµφ√ ταΩα≈α≥ⁿ Γ±σ φσεß⌡εΣΦ∞√σ Σδ φσπε Ωδα±±√, ∩pΦ≈σ∞
- Φ±∩εδⁿτεΓα≥ⁿ ∩pΦ ταΩα≈ΦΓαφΦΦ ┴╚H└╨H█╔ ⌠εp∞α≥ ∩σpσΣα≈Φ, α φσ
- ASCII.
- 5. ╬°ΦßΩΦ Γ ≤±≥αφεΓΩσ CLASSPATH (Φ/ΦδΦ codebase Γ ±δ≤≈ασ α∩∩δσ≥α).
- ─αµσ ∩pεπpα∞∞Φ±≥√ ±ε ±≥αµσ∞ Σσδα■≥ ≥αΩΦσ ε°ΦßΩΦ, ∩ε²≥ε∞≤ φσ
- δΦ°φΦ∞ ß≤Σσ≥ ∩pεΓσpΦ≥ⁿ Φ ²≥ε. ─δ ∩εδ≤≈σφΦ Φφ⌠εp∞α÷ΦΦ εß
- ≤±≥αφεΓΩΦ CLASSPATH, ±∞ε≥pΦ≥σ ±εε≥Γσ≥±≥Γ≤■∙ΦΘ pατΣσδ FAQ
-
- ┼±δΦ ┬√ τα∩≤±Ωασ≥σ α∩∩δσ≥, ≥ε ┬α∞ φ≤µφε ∩pεΓσpΦ≥ⁿ ±δσΣ≤■∙σσ:
- 1. ┼±δΦ ┬α° Ωδα±± φσ ταπp≤µασ≥± , ∩pεΓσpⁿ≥σ ε≥φε± ∙ΦΘ± Ω ┬α°σ∞≤
- α∩∩δσ≥≤ HTML ≥²π.
- 2. ┼±δΦ ┬√ ∩Φ°σ≥σ Γ System.out, ≥ε pστ≤δⁿ≥α≥ ß≤Σσ≥ ε≥εßpαµα≥ⁿ± Γ
- εΩφσ java console ßpα≤τσpα. ┬α∞ φ≤µφε ε≥Ωp√≥ⁿ ²≥ε εΩφε, σ±δΦ ┬√
- ⌡ε≥Φ≥σ φαßδ■Σα≥ⁿ pστ≤δⁿ≥α≥ pαßε≥√ ┬α°σΘ ∩pεπpα∞∞√.
- 3. ╥αΩµσ φ≤µφε ≤Σε±≥εΓσpΦ≥ⁿ± , ≈≥ε Φ±∩εδⁿτ≤σ∞√Θ ┬α∞Φ ßpα≤τσp
- ±εΓ∞σ±≥Φ∞ ± Γετ∞εµφε±≥ ∞Φ τ√Ωα Java, Ωε≥εp√σ ┬√ Φ±∩εδⁿτ≤σ≥σ.
- Internet Explorer Φ ±≥αp√σ Γσp±ΦΦ Netscape φσ ∩εδφε±≥ⁿ■
- ∩εΣΣσpµΦΓαδΦ JDK 1.1. ╧ε∩pεß≤Θ≥σ ±φα≈αδα ∩pε±∞ε≥pσ≥ⁿ ±ΓεΘ α∩∩δσ≥
- Γ appletviewer'σ ┬α°σπε JDK.
-
- 4. ╩αΩ ∞φσ ≤±≥αφεΓΦ≥ⁿ CLASSPATH?
-
- [*] ╧σpσ∞σφφα εΩp≤µσφΦ CLASSPATH ≤Ωατ√Γασ≥ ταπp≤τ≈ΦΩ≤ Ωδα±±εΓ VM,
- πΣσ φ≤µφε Φ±Ωα≥ⁿ Ωδα±±√, Ωε≥εp√σ ∩p ∞ε ΦδΦ Ωε±Γσφφε Γ√τ√Γα■≥± ,
- ΓΩδ■≈α ±Φ±≥σ∞φ√σ Ωδα±±√. CLASSPATH ∩σpσ∞σφφα Σεδµφα
- o ≤Ωατ√Γα≥ⁿ φα ΣΦpσΩ≥εpΦ■, ±εΣσpµα∙≤■ ⌠αΘδ√ Ωδα±±εΓ Σδ Ωδα±±εΓ φσ
- Φτ ∩αΩσ≥α.
- o ≤Ωατ√Γα≥ⁿ φα Ωεpσφⁿ ∩αΩσ≥α Σδ Ωδα±±εΓ Φτ ∩αΩσ≥α. ╩εpφσΓεΘ
- Ωα≥αδεπ ∩αΩσ≥α - Ωα≥αδεδεπ, Γ Ωε≥εpε∞ ±εΣσpµΦ≥ⁿ± Γσ±ⁿ ∩ασ≥ (α φσ
- ≥εδⁿΩε σπε ≈α±≥ⁿ).
- o ≤Ωατ√Γα≥ⁿ ∩p ∞ε φα zip ΦδΦ jar ⌠αΘδ, σ±δΦ Ωδα±±√ φα⌡εΣ ≥ⁿ± Γ
- αp⌡ΦΓφε∞ ⌠αΘδσ. ┬α∞, Γσpε ≥φε, ∩pΦΣσ≥± ∩σpσ≈Φ±δ ≥ⁿ ±εµσpµΦ∞εσ
- αp⌡ΦΓα Σδ ∩εδ≤≈σφΦ ∩pαΓΦδⁿφεπε Φ∞σφΦ ∩αΩσ≥α/∩≤≥Φ Σδ Ωδα±±α.
- ╬≥Σσδ Θ≥σ pατφ√σ ∩≤≥Φ Φ αp⌡ΦΓ√ ± ∩ε∞ε∙ⁿ■ ∩δα≥⌠εp∞σφφε-ταΓΦ±σ∞επε
- pατΣσδΦ≥σδ , ";" Σδ Windows; ":" Σδ Solaris.
- ╥αΩµσ ∩ε∞φΦ≥σ, ≈≥ε:
- o ┴pα≤τσp√ ≤±≥αφαΓδΦΓα■≥ CLASSPATH Ω Ωα≥αδεπ≤ ± HTML ⌠αΘδε∞, ∩δ■±
- ∩αpα∞σ≥p codebase.
- o Γ JDK 1.1 Φ Γ√°σ, java ΣεßαΓδ σ≥ ±Φ±≥σ∞φ√σ Ωδα±±√
- (lib/classes.zip), ≥αΩ ≈≥ε ┬α∞ ²≥επε Σσδα≥ⁿ φσ εß τα≥σδⁿφε.
- o JDK Γσp±ΦΦ 1.2 ΣεßαΓδ σ≥ "." (≥σΩ≤∙α ΣΦpσΩ≥εpΦ ), ±δσΣεΓα≥σδⁿφε,
- ┬√ ∞εµσ≥σ ²≥επε φσ Σσδα≥ⁿ. (Hε jre φσ ΣεßαΓδ σ≥ - ±∞. φΦµσ.)
- o ╙≥ΦδΦ≥α JDK 1.1 jre φσ Φ±∩εδⁿτ≤σ≥ ∩σpσ∞σφφ≤■ CLASSPATH ΦδΦ
- φατφα≈σφΦσ σσ ≥σΩ≤∙σ∞≤ Ωα≥αδεπ≤. (Hα Solaris, CLASSPATH ß≤Σσ≥
- pαßε≥α≥ⁿ.)
-
- ┬ JDK 1.1.2, ²≥ε - Γεεß∙σ ε°ΦßΩα, σ±δΦ ∩εδⁿτεΓα≥σδⁿ ≤±≥αφαΓδΦΓασ≥
- CLASSPATH Σδ ΓΩδ■≈σφΦ classes.zip. Hε CLASSPATH φσεß⌡εΣΦ∞ε
- ≤±≥αφεΓΦ≥ⁿ Σδ
- o ≤ΩαταφΦ φα ΩεpφσΓ√σ ∩αΩσ≥√ ∩pεπpα∞∞Φ±≥α ΦδΦ ∩αΩσ≥√ ≥pσ≥ⁿσπε δΦ÷α
- o Φ±∩εδⁿτΓαφΦ rmic
- o Φ±∩εδⁿτεΓαφΦ φσ±Γ ταφφ√⌡ ∩αΩσ≥εΓ ≥Φ∩α Swing Γ JDK 1.1
- o ≤ΩαταφΦ φα "φα≥ΦΓφ√σ" (native) ßΦßδΦε≥σΩΦ.
-
- ╠ΦφΦ∞αδⁿφα ≤±≥αφεΓΩα CLASSPATH Σεδµφα ß√≥ⁿ: " set CLASSPATH=. "
- HΦµσ ┬√ φαΘΣσ≥σ ∩pΦ∞σp√ Σδ : Windows (basic application class),
- Solaris (package class), javac (multiple packages), Φ browsers (applet
- codebase).
- ----------------------------
-
- HσΩε≥εp√σ ∩pΦ∞σp√ Σδ ∩pΦδεµσφΦ Σδ Windows:
-
- D:\src\tries\HelloWorld.class
-
- ## JDK 1.1, ∩σpσ∞σφφα CLASSPATH φσ ≤±≥αφεΓδσφα
- > cd D:\src\tries\
- > D:\jdk11\bin\java HelloWorld
- # OK: 1.1 φσ Γφε ΣεßαΓδσφ√ classes.zip Φ ≥σΩ≤∙α ΣΦpσΩ≥εpΦ
-
- > D:\jdk11\bin\jre HelloWorld
- # ╬╪╚┴╩└: jre φσ ΣεßαΓδ σ≥ αΓ≥ε∞α≥Φ≈σ±ΩΦ . Ω CLASSPATH
-
- > cd D:\
- > D:\jdk11\bin\jre -cp D:\src\tries HelloWorld
- # OK: jre ΣεßαΓδ σ≥ classes.zip, -cp ΣεßαΓδ σ≥ ΣΦpσΩ≥εpΦ ±
- Ωδα±±ε∞
-
- ## JDK 1.1, ∩σpσ∞σφφα CLASSPATH ≤±≥αφεΓδσφα
- > set CLASSPATH=D:\src\tries
- > D:\jdk11\bin\java HelloWorld
- # OK: java Φ±∩εδⁿτ≤σ≥ CLASSPATH
-
- > D:\jdk11\bin\jre HelloWorld
- # ╬╪╚┴╩└: jre φσ Φ±∩εδⁿτ≤σ≥ CLASSPATH (Γ Windows)
-
- ## JDK 1.0.2, CLASSPATH ≤±≥αφεΓδσφα
- > set CLASSPATH=D:\jdk102\lib\classes.zip;D:\src\tries
- > D:\jdk102\bin\java HelloWorld
- # OK:
-
- > set CLASSPATH=D:\jdk102\lib\classes.zip;D:\src\tries
- > D:\jdk11\bin\java HelloWorld
- # ╬╪╚┴╩└: Φ±Ωδ■≈σφΦσ Γ φΦ≥Φ (thread) NULL - φσ∩pαΓΦδⁿφ√σ
- ±Φ±≥σ∞φ√σ Ωδα±±√
-
-
- ----------------------------
-
- HσΩε≥εp√σ ∩pΦ∞σp√ Σδ ∩pΦδεσφΦ Σδ Solaris
-
- /usr/src/com/devjoes/killer/App.class,
-
- φα⌡εΣ ∙σπε± Γ ∩αΩσ≥σ com.devjoes.killer:
-
- # JDK 1.1, ∩σpσ∞σφφα CLASSPATH φσ ≤±≥αφεΓδσφα
- $ /usr/bin/jdk11/bin/jre -cp /usr/src com.devjoes.killer.App
- # OK:
-
- $ cd /usr/src/com/devjoes/killer/
- $ /usr/bin/jdk11/bin/java App
- # ╬╪╚┴╩└: Φ∞ Ωδα±±α Φ ∩≤≥ⁿ ε°Φßε≈φ√
-
- $ CLASSPATH=/usr/src/
- $ /usr/bin/jdk11/bin/java App
- # ╬╪╚┴╩└: Φ∞ Ωδα±±α - com.devjoes.killer.App
-
- $ /usr/bin/jdk11/bin/java com.devjoes.killer.App
- # OK:
-
-
- ----------------------------
-
- ╧pΦ∞σp√ Φ Σδ Solaris Φ Σδ Windows, ε±φεΓαφφ√σ φα ±δσΣ≤■∙σ∞:
- ╚±⌡εΣφ√σ ⌠αΘδ√ ∩αΩσ≥ ┬√τεΓ
- /usr/src/pack/Minimal.java ∩αΩσ≥ pack pack.sub.Try.run()
- /usr/src/pack/sub/Try.java ∩αΩσ≥ pack.sub (ε≥±≤≥±≥Γ≤σ≥)
-
- $ CLASSPATH=""
- $ /usr/bin/jdk11/bin/javac /usr/src/pack/sub/Try.java
- # OK: Γ±σ pαßε≥ασ≥
-
- $ /usr/bin/jdk11/bin/javac /usr/src/pack/Minimal.java
- # ╬╪╚┴╩└: φσ φαΘΣσφ pack.sub.Try
-
- $ cd /usr/src
- $ /usr/bin/jdk10/bin/javac pack/Minimal.java
- # OK: HαΘΣσφ pack.sub.Try Γ . ΩαΩ Γ Ωεpφσ ∩αΩσ≥α
-
- $ cd /usr/src/pack
- $ CLASSPATH=/usr/src
- $ /usr/bin/jdk11/bin/javac Minimal.java
- # OK: HαΘΣσφ pack.sub.Try φα ε±φεΓαφΦΦ Φφ⌠εp∞α÷ΦΦ Φτ CLASSPATH
-
-
- ╥σ∩σpⁿ φατφα≈Φ∞ Ωδα±± ∩pΦδεµσφΦ killer
-
- /usr/src/com/devjoes/killer/FastApp.java
-
- (Φτ ∩αΩσ≥α com.devjoes.killer), Φ±∩εδⁿτ≤■∙ΦΘ ∩αΩσ≥ ≥pσ≥ⁿσπε δΦ÷α Γ jar
- ⌠αΘδσ
-
- /usr/jars/JShapes.jar
-
- φε φσ Φ±∩εδⁿτ≤■∙ΦΘ φΦΩαΩΦ⌡ Σp≤πΦ⌡ Ωδα±±εΓ. ╤δσΣ≤■∙σσ ß≤Σσ≥ pαßε≥α≥ⁿ:
-
- $ CLASSPATH=/usr/jars/JShapes.jar
- $ cd /usr/src/com/devjoes
- $ /usr/bin/jdk11/bin/javac killer/FastApp.java
-
-
- ╬Ωεφ≈α≥σδⁿφε, φσ±ΩεδⁿΩε ∩pΦ∞σpεΓ Σδ α∩∩δσ≥εΓ. ╠φεπΦσ α∩∩δσ≥√
- Φ±∩εδⁿτ≤■≥ ≥εδⁿΩε εΣΦφ Ωδα±±, φα⌡εΣ ∙ΦΘ± Γ ΣΦpσΩ≥εpΦΦ ± html ⌠αΘδε∞:
-
- <applet code=ArcTest.class height=400 width=400>
-
-
- ─δ Φ±∩εδⁿτεΓαφΦ Ωδα±±εΓ Γ ∩εΣΩα≥αδεπσ, Φ±∩εδⁿτ≤Θ≥σ ∩αpα∞σ≥p
- codebase:
-
- <applet codebase="mysubdir/" code=ArcTest.class ..
-
-
- ─δ Φ±∩εδⁿτεΓαφΦ Ωδα±±εΓ Φτ αp⌡ΦΓα, Φ±∩εδⁿτ≤Θ≥σ ∩αpα∞σ≥p archive:
-
- <applet archive="applets.jar" code=ArcTest.class ..
-
-
- ╤∞ε≥pΦ≥σ ≥αΩµσ: JDK 1.1 ReadMe
- Solaris JDK 1.1 tool documentation
- Win32 JDK 1.1 tool documentation
-
- *(╫α±≥ⁿ 2) ╩αΩ ±Σσδα≥ⁿ Φφ≥σpαΩ≥ΦΓφ√Θ I/O ± ΩδαΓΦα≥≤p√ Γ Java?
-
- [*] ┬ Java Φφ≥σpαΩ≥ΦΓφ√Θ ΓΓεΣ/Γ√ΓεΣ ε≈σφⁿ ∩δε⌡ε ∩εΣΣσpµΦΓασ≥± .
- ╧pεπpα∞∞Φ±≥√ Σεδµφ√ φσε≈σΓΦΣφ√∞Φ ±∩ε±εßα∞Φ εß·σΣΦφ ≥ⁿ ≈α±≥Φ ßΦßδΦε≥σΩΦ
- Ωδα±±εΓ Σδ ∩εδ≤≈σφΦ ≥pσß≤σ∞εΘ ⌠≤φΩ÷Φεφαδⁿφε±≥Φ. ╤∞ε≥pΦ≥σ ε≥Γσ≥ φα ┬ε∩pε±
- 7.1.
-
- *(╫α±≥ⁿ 2) ╩αΩ ±Σσδα≥ⁿ ΓΓεΣ/Γ√ΓεΣ ⌠αΘδεΓ Γ α∩∩δσ≥σ?
-
- [*] ╧ε ≤∞εδ≈αφΦ■, α∩∩δσ≥√ ∞επ≤≥ ≈Φ≥α≥ⁿ ⌠αΘδ√ φα ±σpΓσpσ, φε φσ ∞επ≤≥
- τα∩Φ±√Γα≥ⁿ Φ⌡ Φ φσ Φ∞σ■≥ φΦΩαΩεπε Σε±≥≤∩α ≤ ≤δΦσφ≥≤. ▌≥ε ±Σσδαφε Φτ
- ±εεßpαµσφΦΘ ßστε∩α±φε±≥Φ. ┴√δε ß√ φσ pατ≤∞φε, σ±δΦ ß√ α∩∩δσ≥, ∩εδ≤≈σφφ√Θ Φτ
- φσΦτΓσ±≥φ√⌡ Φ±≥ε≈φΦΩεΓ Γ Internet, ±∞επ ß√ ±≈Φ≥√Γα≥ⁿ/τα∩Φ±√Γα≥ⁿ ┬α°Φ ⌠αΘδ√.
- ╩±≥α≥Φ, εΣφεΘ Φτ ∩pΦ≈Φφ, ∩ε Ωε≥εpεΘ ActiveX ∞σp≥Γ Σδ Internet, Γδ σ≥±
- ΩαΩ pατ pατpσ°σφΦσ ≥αΩεπε ΓΦΣα Σε±≥≤∩α Ω ⌠αΘδα∞.
-
- ┼±≥ⁿ φσ±ΩεδⁿΩε pατδΦ≈φ√⌡ ∩≤≥σΘ εß⌡εΣα φσΩε≥εp√⌡ επpαφΦ≈σφΦΘ. ╤∞ε≥pΦ≥σ ε≥Γσ≥
- φα ┬ε∩pε± 7.8.
-
- *(╫α±≥ⁿ 2) ╩αΩ ∞φσ Γε±∩εδⁿτεΓα≥ⁿ± ΓΓεΣε∞/Γ√ΓεΣε∞ ≈σpστ ∩ε±δσΣεΓα≥σδⁿφ√Θ
- ∩εp≥ φα ∞εσ∞ Ωε∞∩ⁿ■≥σpσ?
-
- [*] Java 1.0 Φ 1.1 φσ Φ∞σ■≥ API ∩ε±δσΣεΓα≥σδⁿφεπε ∩εp≥α. ─δ ²≥επε ∞εµφε
- Γε±∩εδⁿτεΓα≥ⁿ± ßΦßδΦε≥σΩα∞Φ, pα±∩pε±≥pαφ σ∞√∞Φ φα Ωε∞∞σp≈σ±ΩεΘ ε±φεΓσ. JDK
- 1.2 ∩pσΣε±≥αΓδ σ≥ Σε±≥≤∩ Ω ∩ε±δσΣεΓα≥σδⁿφ√∞ Φ ∩αpαδδσδⁿφ√∞ ∩εp≥α∞ ΩαΩ
- pα±°ΦpσφΦσ (ε∩÷Φεφαδⁿφεσ Σε∩εδφσφΦσ) Ω ßΦßδΦε≥σΩσ. ╤∞ε≥pΦ≥σ ≥αΩµσ ε≥Γσ≥ φα
- ┬ε∩pε± 6.3.
-
- *(╫α±≥ⁿ 2) ╩αΩ ∞φσ ε±≤∙σ±≥ΓΦ≥ⁿ ⌠εp∞α≥ΦpεΓαφφ√Θ ΓΓεΣ/Γ√ΓεΣ ≥Φ∩α printf Φ
- scanf Γ C/C++?
-
- [*] ╧αΩσ≥ java.text, ∩ε±≥αΓδ σ∞√Θ ± Java 1.1, ∩εΣΣσpµΦΓασ≥ ⌠εp∞α≥ΦpεΓαφφ√Θ
- ΓΓεΣ/Γ√ΓεΣ. ╤∞ε≥pΦ≥σ ≥αΩµσ ε≥Γσ≥√ φα Γε∩pε±√ 7.11, 7.12, Φ 17.7.
-
- *(╫α±≥ⁿ 2) ▀ ∩ε≥pα≥Φδ Ω≤≈≤ Γpσ∞σφΦ, ∩√≥α ±ⁿ φαΘ≥Φ ε°ΦßΩ≤, α εΩαταδε±ⁿ, ≈≥ε
- Γ±σ Σσδε ß√δε Γ ≥ε∞, ΩαΩΦσ ß≤ΩΓ√ Φ±∩εδⁿτεΓαδΦ±ⁿ (ßεδⁿ°Φσ ΦδΦ ∞αδσφΩΦσ)!
-
- [*] ┬ Java ±≤∙σ±≥Γ≤σ≥ ταΓΦ±Φ∞ε±≥ⁿ ε≥ ≥επε, ßεδⁿ°Φσ ΦδΦ ∞αδσφⁿΩΦσ ß≤ΩΓ√
- Φ±∩εδⁿτ≤■≥± . ┬ δ■ßε∞ ±δ≤≈ασ, ±≥εΦ≥ φα∩ε∞φΦ≥ⁿ, ≈≥ε Φ∞σφα Ωδα±±εΓ Φ Φ∞σφα
- ⌠αΘδεΓ, Γ Ωε≥εp√⌡ ²≥Φ Ωδα±±√ φα⌡εΣ ≥ⁿ± , Σεδµφ√ ±εΓ∩αΣα≥ⁿ αß±εδ■≥φε ≥ε≈φε.
- ╤∞ε≥p≥σ ≥αΩµσ ε≥Γσ≥ φα ┬ε∩pε± 1.1.2
-
- *(╫α±≥ⁿ 2) ╧ε≈σ∞≤ Ωε∞∩Φδ ≥εp Γ√Σασ≥ ∞φσ ≥αΩ≤■ ε°ΦßΩ≤: "Can't make static
- reference to method..."?
-
- [*] ┬√° ΩεΣ, Γετ∞εµφε, ∩ε⌡εµ φα ²≥ε≥:
-
- class myclass {
- public static void main(String args[]) {
- myMethod();
- }
-
- public void myMethod() {
- //ΩαΩεΘ-≥ε ΩεΣ
- }
- }
-
-
- ╧pεßδσ∞α ταΩδ■≈ασ≥± Γ ±δσΣ≤■∙σ∞: ±≥α≥Φ≈σ±ΩΦσ ∞σ≥εΣ√ ∩pΦφαΣδσµα≥ Ωδα±±≤, α
- φσ ΩαµΣε∞≤ ε≥Σσδⁿφε∞≤ εß·σΩ≥≤ ²≥επε Ωδα±±α. ┼±δΦ ┬√ ≤∩≤±Ωασ≥σ Ωδ■≈σΓεσ
- ±δεΓε static (εß√≈φ√Θ ±δ≤≈αΘ), ΩαΩ ±Σσδαφε τΣσ±ⁿ ± ∞σ≥εΣε∞ "myMethod()", ≥ε
- ┬√ ∞εµσ≥σ Γ√τΓα≥ⁿ ²≥ε≥ ∞σ≥εΣε∞ ≥εδⁿΩε ±ε±δαΓ°Φ±ⁿ φα εß·σΩ≥. Hε Γ ┬α°σ∞
- Γ√τεΓσ Φτ main(), φσ ±εεß∙ασ≥± , ΩαΩε∞≤ εß·σΩ≥≤ ∩pΦφαΣδσµΦ≥ myMethod().
- ┬φ≤≥pΦ φσ-static ∞σ≥εΣα, ┬α∞ φσ ≥pσß≤σ≥± ∩pσΣε±≥αΓδ ≥ⁿ ≥αΩ≤■ Φφ⌠εp∞α÷Φ■,
- ≥αΩ ΩαΩ Γ ²≥ε∞ ±δ≤≈ασ ∩pσΣ∩εδαπασ≥± , ≈≥ε Γ√τ√Γασ≥± ∞σ≥εΣ ≥επε εß·σΩ≥α,
- Ωε≥εpε∞≤ ∩pΦφαΣδσµΦ≥ Γ√τ√Γα■∙ΦΘ ∞σ≥εΣ. Hε ∩pΦ Γ√τεΓσ Φτ ±≥α≥Φ≈σ±Ωεπε
- ∞σ≥εΣα, ┬√ Σεδµφ√ ∩pσΣε±≥αΓΦ≥ⁿ ²≥≤ Φφ⌠εp∞α÷Φ■, ΦδΦ, σ±δΦ ²≥επε φσ ±Σσδα≥ⁿ,
- ┬√ ≤ΓΦΣσ≥σ ±εεß∙σφΦσ εß ε°ΦßΩσ.
-
- ┬ εß∙σ∞ ΓΦΣσ, Γ√τεΓ ∞σ≥εΣα myMethod() ß≤Σσ≥ ∩pΦ∞σpφε ≥αΩΦ∞:
-
- public static void main(String args[]) {
- myclass m = new myclass();
- m.myMethod();
- }
-
-
- ▌≥α ε°ΦßΩα φαΦßεδσσ ≈α±≥ε Γ±≥pσ≈ασ≥± , ΩεπΣα ┬√ ∩Φ°Φ≥σ ΩεΣ, Ωε≥εp√Θ ∞εµσ≥
- Γ√∩εδφ ≥ⁿ± Φ ΩαΩ α∩∩δσ≥, Φ ΩαΩ ∩pΦδεµσφΦσ. ╬ß√≈φε, ┬√ Γ√τ√Γασ≥σ init() Φ
- start() Φτ main. ┬ε≥, ≈≥ε ┬√ Σεδµφ√ ±Σσδα≥ⁿ:
-
- public static void main(String[] args) {
- Applet ma = new myApplet();
- ma.init();
- ma.start();
- }
-
-
- *(╫α±≥ⁿ 2) ╧ε≈σ∞≤ φσ ∞επ≤ Σσδα≥ⁿ myArray.length() ? ╠α±±ΦΓ√ ΓσΣⁿ
- Γδ ■≥± εß·σΩ≥α∞Φ, ∩pαΓΦδⁿφε?
-
- [*] ─α, Γ ±∩σ÷Φ⌠ΦΩα÷ΦΦ Java ±Ωαταφε, ≈≥ε ∞α±±ΦΓ√ Γδ ■≥± εß·σΩ≥α∞Φ, ≥ε≈φε
- ≥αΩµσ, ΩαΩ Φ Ωδα±±√. ╬ΣφαΩε, ∞α±±ΦΓ√ φσ ∞επ≤≥ ±εΣσpµα≥ⁿ ∞σ≥εΣ√. ┬√ Σεδµφ√
- Φ±∩εδⁿτεΓα≥ⁿ myArray.length, Γδ ■∙ΦΘ± ²δσ∞σφ≥ε∞ Σαφφ√⌡ (φσ ∞σ≥εΣε∞),
- ∩pΦφαΣδσµα∙Φ∞ myArray.
-
- *(╫α±≥ⁿ 2) ╩αΩ ∞φσ ταΩp√≥ⁿ Java-εΩφε, Φ±∩εδⁿτ≤ ΦΩεφΩ≤ Γ Γσp⌡φσ∞ ∩pαΓε∞
- ≤πδ≤ εΩφα?
-
- [*] ╤ετΣαΘ≥σ Ωδα±± εßpαßε≥≈ΦΩα ±εß√≥Φ , pα±°Φp WindowAdapter. ╟α≥σ∞
- ∩σpσπp≤τΦ≥σ windowClosing() Σδ ≥επε, ≈≥εß√ ∞εµφε ß√δε ±εΓσp°α≥ⁿ φ≤µφ√σ
- ΣσΘ±≥ΓΦ ∩pΦ ταΩp√ΓαφΦΦ εΩφα. ╬±≥ασ≥± ΣεßαΓΦ≥ⁿ Γ±■ ²≥≤ ≈≤°ⁿ Ω Listener'α∞
- φ≤µφεπε εΩφα.
-
- import java.awt.*;
- import java.awt.event.*;
-
- public class MyFrame extends Frame {
- public MyFrame(String s) {super(s);}
-
- public class WL extends WindowAdapter {
- public void windowClosing(WindowEvent e) {System.exit(0);}
- }
-
- // ╤■Σα Γ±≥αΓΦ≥ⁿ Γ±σ, ≈≥ε φ≤µφε.
-
- }
-
-
- ├Σσ-φΦß≤Σⁿ Γ ΩεΣσ ΦφΦ÷ΦαδΦτα÷ΦΦ ∩ε∞σ±≥Φ≥σ:
-
- f1.addWindowListener( f1. new WL() );
-
-
- ▌≥ε≥ ±Φφ≥αΩ±Φ± εß√≈φε φσ ΦτΓσ±≥σφ ∞φεπΦ∞ δ■Σ ∞, εΣφαΩε ²≥ε σ∙σ εΣφα
- ΓΩ≤±φε±≥ⁿ Γφ≤≥pσφφΦ⌡ Ωδα±±εΓ.
-
- ┬ Ωα≈σ±≥Γσ αδⁿ≥σpφα≥ΦΓ√, Γ√°σ≤Ωαταφφεσ ∞εµφε ∩pεΣσδα≥ⁿ τα εΣΦφ °απ:
-
- MyFrame f1 = new f("wave");
-
- f1.addWindowListener( new WindowAdapter() {
- public void windowClosing(WindowEvent e) {
- // Φ/ΦδΦ setVisible(false) Φ/ΦδΦ dispose()
- System.exit(0); }
- });
-
-
- ╤∞ε≥pΦ≥σ ≥αΩµσ ε≥Γσ≥√ φα Γε∩pε±√ 1.0.19, 1.0.30 Φ 15.7.
-
- *(╫α±≥ⁿ 2) ╧ε≈σ∞≤ b+=100; OK, φε b = b+100; φσ Ωε∞∩ΦδΦp≤σ≥± ?
-
- [*] ╧ε-ΓΦΣΦ∞ε∞≤, ┬α° ΩεΣ Γ√πδ ΣΦ≥ ∩εΣεßφε ²≥ε∞≤:
-
- byte b = 0;
- Incompatible type for =. Explicit cast needed to convert int to byte.
- b = b + 100; // ╤εεß∙σφΦσ εß ε°ΦßΩσ
- ^
- b += 100; // OK
-
- ╧pΦ≈Φφα Γ ≥ε∞, ≈≥ε ∩pΦ Γ√≈Φ±δσφΦΦ ∩σpΓεπε Γ√pαµσφΦ (b=b+100), ≥Φ∩ σπε
- τφα≈σφΦ Φτ∞σφ σ≥± ∩ε ΩpαΘφσΘ ∞σpσ Σε int. ─δ ≥επε, ≈≥εß√ Γ±σ ταpαßε≥αδε,
- ±δσΣ≤σ≥ ±Σσδα≥ⁿ ∩pσεßpατεΓαφΦσ ≥Φ∩α, ∩εΣεßφε ²≥ε∞≤: "n=(byte) (b+100);". ┬ε
- Γ≥εpε∞ ±δ≤≈ασ, ∩pΦ±ΓαΦΓαφΦσ Φ ∩pσεßpατεΓαφΦσ ≥Φ∩α ∩pεΦ±⌡εΣΦ≥ αΓ≥ε∞α≥Φ≈σ±ΩΦ.
- ┬ ±∩σ÷Φ⌠ΦΩα÷ΦΦ Java ±Ωαταφε:
-
- "┬√pαµσφΦσ E1 op= E2 ²ΩΓΦΓαδσφ≥φε E1 = (≥Φ∩)((E1) op (E2)), πΣσ "≥Φ∩"
- - ≥Φ∩ E1, τα Φ±Ωδ■≈σφΦσ∞ ≥επε, ≈≥ε E1 Γ√≈Φ±δ σ≥± σΣΦφεµΣ√" [JLS
- 15.25.2]
-
- ╩εφ±≥αφ≥√ Γε Γpσ∞ Ωε∞∩Φδ ÷ΦΦ αΓ≥ε∞α≥Φ≈σ±ΩΦ ∩pσεßpατ≤■≥± Ω φ≤µφε∞≤ ≥Φ∩≤.
- ╩εΣ
-
- byte theAnswer = 42;
-
- Σε∩≤±≥Φ∞, ∩pσεßpατεΓαφΦσ ≥Φ∩α Σσδα≥ⁿ φσ φ≤µφε [JLS 5.2]
-
- *(╫α±≥ⁿ 2) ╩αΩ ∞φσ ±δεµΦ≥ⁿ Γ∞σ±≥σ ΣΓα Float-εß·σΩ≥α?
-
- [*] ┬√ ⌡ε≥Φ≥σ φα∩Φ±α≥ⁿ ≈≥ε-≥ε ≥Φ∩α ²≥επε:
-
- Float One;
- Float Two;
- Float Hard = One + Two;
-
-
- Hε Ωε∞∩Φδ ≥εp φσ ∩pΦ∞σ≥ ≥αΩεΘ τα∩Φ±Φ.
-
- ┬ Java σ±≥ⁿ ΣΓα pατδΦ≈φ√⌡ ∩≤≥Φ ∩pσΣ±≥αΓδσφΦ 32-ßΦ≥φ√⌡ Γσ∙σ±≥Γσφφ√⌡ ≈Φ±σδ,
- Float Φ float. Float - ²≥ε Ωδα±±, σΣΦφ±≥Γσφφα ÷σδⁿ Ωε≥εpεπε -
- ∩pσΣ±≥αΓδσφΦσ Γσ∙σ±≥Γσφφ√⌡ ≈Φ±σδ Γ ΓΦΣσ εß·σΩ≥εΓ. ╩δα±± φσ ∩εΣΣσpµΦΓασ≥
- ε∩σpα÷ΦΘ φαΣ Γσ∙σ±≥Γσφφ√∞Φ ≈Φ±δα∞Φ, ≥αΩ ΩαΩ ∩pεΦτΓεΣΦ≥σδⁿφε±≥ⁿ ∩pΦ ²≥ε∞
- ß√δα ß√ ±δΦ°Ωε∞ φΦτΩεΘ. float - ∩pΦ∞Φ≥ΦΓφ√Θ ≥Φ∩ (∩εΣεßφε int), Φ±∩εδⁿτ≤σ∞√Θ
- Σδ Γ√≈Φ±δσφΦΘ.
-
- ┬α∞ φσεß⌡εΣΦ∞ε Γ√ßpα≥ⁿ ≈≥ε-≥ε εΣφε, Γ ταΓΦ±Φ∞ε±≥Φ ε≥ ∩pσΣ∩εδαπασ∞επε
- Φ±∩εδⁿτεδⁿτεΓαφΦ . ┼±δΦ ┬α∞ φσεß⌡εΣΦ∞ε ∩pεΦτΓεΣΦ≥ⁿ Γ√≈Φ±δσφΦ ± ∩δαΓα■∙σΘ
- ≥ε≈ΩεΘ, Φ±∩εδⁿτ≤Θ≥σ "float". ┼±δΦ ┬α∞ φσεß⌡εΣΦ∞ε pαßε≥α≥ⁿ ± Γσ∙σ±≥Γσφφ√∞
- ≈Φ±δε∞ ΩαΩ ± εß·σΩ≥ε∞ (φα∩pΦ∞σp, Σδ ∩ε∞σ∙σφΦ σπε Γ Vector), Φ±∩εδⁿτ≤Θ≥σ
- "Float".
-
- ┼±δΦ ┬α∞ φσεß⌡εΣΦ∞ε Φ ≥ε, Φ Σp≤πεσ, ≥ε ²≥ε ß≤Σσ≥ φσ±ΩεδⁿΩε ±δεµφσΘ. ┬α∞
- φσεß⌡εΣΦ∞ε εß· ΓΦ≥ⁿ ≈Φ±δα εΣφΦ∞ Φτ ±∩ε±εßεΓ Φ ∩pσεßpατεΓ√Γα≥ⁿ Φ⌡ Γ± ΩΦΘ
- pατ, ΩεπΣα ┬α∞ φ≤µφ√ Γετ∞εµφε±≥Φ Σp≤πεπε. ┬α° ΩεΣ ∞εµσ≥ ß√≥ⁿ ∩εΣεßσφ ²≥ε∞≤:
-
- Float One = new Float(1.0);
- Float Two = new Float(2.0);
- Float Hard = new Float(One.floatValue() + Two.floatValue());
-
-
- ╤∞ε≥pΦ≥σ ≥αΩµσ Γε∩pε±√ 3.8 , 5.1, Φ 10.1.
-
- *(╫α±≥ⁿ 2) ╩αΩ ∞φσ ∩ε∞σ±≥Φ≥ⁿ Γ±σ ±ΓεΦ Ωδα±±√ Φ pσ±≤p±√ Γ εΣΦφ ⌠αΘδ Φ
- τα±≥αΓΦ≥ⁿ java τα∩≤±≥Φ≥ⁿ σπε?
-
- [*] ╚±∩εδⁿτ≤Θ≥σ JAR-⌠αΘδ. ╧ε∞σ±≥Φ≥σ Γ±σ ⌠αΘδ√ Γ JAR, τα≥σ∞ τα∩≤±ΩαΘ≥σ
- ∩pΦδεµσφΦσ ∩εΣεßφε ²≥ε∞≤:
-
- java -jar [-options] jarfile Mainclass [args...]
-
-
- *(╫α±≥ⁿ 2) ╩αΩ ∞φσ ∩ε±∞ε≥pσ≥ⁿ φε∞σpα ±≥pεΩ Γ ±≥σΩσ ≥pα±±ΦpεΓΩΦ Φ±∩εδⁿτ≤
- JDK 1.1.6?
-
- [*] Hα≈Φφα ± JDK 1.1.5, φε∞σpα ±≥pεΩ Φ±⌡εΣφεπε ≥σΩ±≥α φσ ±εΣσpµα≥ⁿ± Γ
- ±≥σΩσ ≥pα±±ΦpεΓΩΦ.
-
- ─δ ∩pε±∞ε≥pα φε∞σpεΓ ±≥pεΩ Γ JDK 1.2, ΩεπΣα ∩pεπpα∞∞α Γ√τ√Γασ≥ Φ±Ωδ■≈σφΦσ,
- Φ±∩εδⁿτ≤Θ≥σ Γ Ωε∞αφΣφεΘ ±≥pεΩσ
-
- java -Djava.compiler=NONE myapp
-
- ▌≥≤ Φφ⌠εp∞α÷ΦΦ ∞εµφε φαΘ≥Φ φα
- http://java.sun.com/products/jdk/1.2/changes.html#aaa24
-
- ------------------------------
-
- ─ασ°ⁿ Java φα φεΓε∞ PC!
-
- ┬α° φεΓ√Θ PC ∞εµσ≥ ∩ε±≥αΓδ ≥ⁿ± ± φαΦßεδσσ ±εΓpσ∞σφφεΘ Γσp±ΦσΘ
- Java, φε ≥εδⁿΩε Γ ≥ε∞ ±δ≤≈ασ, σ±δΦ ┬√ ±α∞Φ ²≥επε τα⌡ε≥Φ≥σ!
- JavaLobby ∩pε±Φ≥ ∩pεΣαΓ÷εΓ PC ∩εΣΣσpµΦΓα≥ⁿ Java Φ ∩pεΣαΓα≥ⁿ ±ΓεΦ ∞α°Φφ√ ±
- ∩pσΣ≤±≥αφεΓδσφφ√∞ Java-∩δαπΦφε∞.
-
- ╤∞ε≥pΦ≥σ http://www.javalobby.org/servlet/PetitionServlet/pjpc
- ╧εµαδ≤Θ±≥α, ∩ε∞επΦ≥σ JavaLobby, ∩εΣΣσpµαΓ ²≥≤ ΦφΦ÷Φα≥ΦΓ≤
-
- ------------------------------------------------------------------------
-
- ╧εµαδ≤Θ±≥α, ∩εΣΣσpµΦΓαΘ≥σ ∩σpσφε±Φ∞ε±≥ⁿ Java.
-
- ╬Σφε Φτ ε±φεΓφ√⌡ Σε±≥εΦφ±≥Γ Java - ²≥ε σσ ∩σpσφε±Φ∞ε±≥ⁿ.
-
- * ╧σ≡σφε±Φ∞ε±≥ⁿ ∩ετΓεδ σ≥ δσπΩε Φτ∞σφ ≥ⁿ/εßφεΓδ ≥ⁿ ε∩σ≡α÷Φεφφ√σ ±Φ±≥σ∞√
- Φ ∩δα≥⌠ε≡∞√, φσ ≥σ≡ ∩≡σΣ√Σ≤∙Φ⌡ ≡ατ≡αßε≥εΩ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ .
- * ╧σ≡σφε±Φ∞ε±≥ⁿ ∩ετΓεδ σ≥ Java-∩≡επ≡α∞∞Φ±≥α∞ ßστ ∩σ≡σ≤≈ΦΓαφΦ ∩≡Φ∞σφ ≥ⁿ
- ±ΓεΦ τφαφΦ ≤ φεΓ√⌡ ≡αßε≥αΣα≥σδσΘ.
- * ╧σ≡σφε±Φ∞ε±≥ⁿ Σσδασ≥ Σε±≥≤∩φ√∞ ßεδⁿ°εσ ∞φεµσ±≥Γε ∩≡επ≡α∞∞ Σδ Γ±σ⌡
- Ωε∞∩ⁿ■≥σ≡εΓ.
-
- ╧≡επ≡α∞∞φα ∩σ≡σφε±Φ∞ε±≥ⁿ ∩≡σΣ±≥αΓδ σ≥ ßεδⁿ°εΘ Φφ≥σ≡σ± ΩαΩ Σδ
- ≡ατ≡αßε≥≈ΦΩεΓ, ≥αΩ Φ Σδ ∩εδⁿτεΓα≥σδσΘ. ─αµσ, σ±δΦ ┬√ Φ±∩εδⁿτ≤σ≥σ ≥εδⁿΩε
- Windows 95, ∩σ≡σφε±Φ∞ε±≥ⁿ Γαµφα Φ ┬α∞. ┼±δΦ Γ±σ ┬α°Φ ∩≡επ≡α∞∞√ φα∩Φ±αφ√ φα
- Java, ≥ε εφΦ ß≤Σ≤≥ ≡αßε≥α≥ⁿ ∩≡Φ ∩σ≡σ⌡εΣσ ε≥ MS-DOS Ω Windows 3.1, Φ Σαδσσ Ω
- Windows 95, Windows 98, Windows NT Φ Σαµσ Ω Windows CE. ╚φα≈σ, εß√≈φε
- ∩≡Φ⌡εΣΦ≥± ∩εΩ≤∩α≥ⁿ φεΓ√σ ∩≡επ≡α∞∞∞√, ΩαµΣ√Θ ≡ατ, ΩεπΣα ∞σφ σ≥± Windows.
- ╧σ≡σφε±Φ∞ε±≥ⁿ φσ Γ Φφ≥σ≡σ±α⌡ Microsoft, ≥αΩ ΩαΩ ∩ετΓεδ σ≥ ∩εδⁿτεΓα≥σδ ∞
- δσπΩε ∩≡εßεΓα≥ⁿ Σ≡≤πΦσ ε∩σ≡α÷Φεφφ√σ ±Φ±≥σ∞√, Φ, ≥αΩΦ∞ εß≡ατε∞, ∩σ≡σΩ≡√Γασ≥
- εΣΦφ Φτ σσ Φ±≥ε≈φΦΩεΓ Σε⌡εΣεΓ.
-
- ┬ 1998 αφ≥Φ∞εφε∩εδⁿφεσ Σσδε ∩≡ε≥ΦΓ Microsoft ε≥Ω≡√δε Γφ≤≥≡σφφΦΘ ΣεΩ≤∞σφ≥
- Microsoft. ╬ßετφα≈σφφ√Θ ΩαΩ "±≥≡α≥σπΦ≈σ±Ωα ÷σδⁿ" εφ πδα±Φδ: "≤φΦ≈≥εµΦ≥ⁿ
- ∞σµ∩δα≥⌠ε≡∞σφφ≤■ Java" ∩ε±≡σΣ±≥Γε∞ ≤ΓσδΦ≈σφΦ "π≡ τφεπε" ≡√φΩα Java.
- [Exhibit 101 (MS7 033448)].
-
- ┬ φε ß≡σ 1998 ╘σΣσ≡αδⁿφ√Θ ±≤Σⁿ ∩ε±≥αφεΓΦδ ≈≥ε Microsoft φα≡≤°Φδα
- ∩εΣ∩Φ±αφφεσ ±επδα°σφΦσ ± Sun ≡α±∩≡ε±≥≡αφ φσ±εΓ∞σ±≥Φ∞≤■ Java, Φ Σεδµφα
- ∩≡σΩ≡α≥Φ≥ⁿ ²≥ε. ┼±δΦ ∩σ≡σφε±Φ∞ε±≥ⁿ Φ∞σσ≥ ßεδⁿ°εσ τφα≈σφΦσ Σδ ┬α± ΦδΦ ┬α°Φ⌡
- ∩εδⁿτεΓα≥σδσΘ, ΦτßσπαΘ≥σ Java-∩≡εΣ≤Ω≥εΓ ε≥ Microsoft; εφΦ ≤∞√°δσφφε
- ∩√≥α■≥± ±αßε≥Φ≡εΓα≥ⁿ ∩σ≡σφε±Φ∞ε±≥ⁿ. ┬φ≤≥≡σφφΦσ ΣεΩ≤∞σφ≥√ Microsoft
- ∩εΣ≥Γσ≡µΣα■≥ ²≥ε εΣφετφα≈φε. ╤∞ε≥≡Φ≥σ
- http://www.usdoj.gov/atr/cases/f1700/1762.htm.
-
- ------------------------------
-
- ╬±εßσφφε±≥Φ Windows
-
- *╤≤∙σ±≥Γ≤σ≥ δΦ ≡σαδΦτα÷Φ Java Σδ Windows 3.1?
-
- [*] ─α. ╤∞ε≥pΦ≥σ Question 1.6 Hε Φ±∩εδⁿτεΓαφΦσ Windows 3.1 φσ ε≈σφⁿ ⌡ε≡ε°ε,
- ∩ε±ΩεδⁿΩ≤ εφα Φ∞σσ≥ φσαΣσΩΓα≥φ√σ ±ΓεΘ±≥Γα Σδ ∩εΣΣσ≡µΩΦ ßεδⁿ°Φφ±≥Γα
- ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ
-
- *(╫α±≥ⁿ 2) ▀ Φ±∩εδⁿτ≤■ Win95, Φ ∞εσ DOS εΩφε φσ ∩≡ΦφΦ∞ασ≥ Φ∞σφα ⌠αΘδεΓ
- ΣδΦφφσσ ≈σ∞ 8.3.
- "This program cannot be run in DOS mode"
-
- [*] ╬ßσ ²≥Φ ∩≡εßδσ∞√ ∞επ≤≥ ß√≥ⁿ ≡σ°σφ√ εΣΦφαΩεΓε. ╙ßσΣΦ≥σ±ⁿ, ≈≥ε τα∩≤∙σφ
- Win95/98 command.com, Σαδσσ ┬√ Σεδµφ√ Φτ∞σφΦ≥ⁿ ±ΓεΘ±≥Γα ╤σαφ±α MS-DOS. ┬
- ΣΦαδεπεΓε∞ εΩφσ φα ταΩδαΣΩσ "╧≡επ≡α∞∞α" φαµ∞Φ≥σ Ωφε∩Ω≤ "─ε∩εδφΦ≥σδⁿφ√σ
- ∩α≡α∞σ≥≡√". ╤ΓεΘ±≥Γε "Hσ ΣαΓα≥ⁿ ∩≡επ≡α∞∞σ τα∞σ≥Φ≥ⁿWindows" Σεδµφε ß√≥ⁿ
- H┼╬╥╠┼╫┼HH█╠.
-
- ┼±δΦ Γ√ß≡α≥ⁿ ²≥ε ±ΓεΘ±≥Γε, ≥ε ∩≡επ≡α∞∞√ ß≤Σ≤≥ ±σß Γσ±≥Φ ≥ε≈φε ≥αΩ, ΩαΩ ┬√
- ΓΦΣσδΦ. ╧ε ≤∞εδ≈αφΦ■ εφε φσ Γ√ß≡αφε, Γετ∞εµφε ²≥ε ∩≡εΦτε°δε ∩ετΣφσσ.
- ╚τ∞σφΦ≥σ σπε φα φσε≥∞σ≈σφφεσ.
-
- *(╫α±≥ⁿ 2) ▀ Φ±∩εδⁿτ≤■ ┴δεΩφε≥ Σδ ≡σΣαΩ≥Φ≡εΓαφΦ ∞εΦ⌡ ⌠αΘδεΓ, ΩαΩ ∞φσ
- ±ε⌡≡αφ ≥ⁿ Φ⌡ ± ≡α±°Φ≡σφΦσ∞ ".java"? ╥αΩµσ, φσΩε≥ε≡√σ ⌠αΘδ√ ± Φ±⌡εΣφ√Φ
- ≥σΩ±≥α∞Φ ∩≡επ≡α∞∞ ε≥εß≡αµα■≥± ∩εδφε±≥ⁿ■ Γ εΣφ≤ ±≥≡εΩ≤. ┬ ≈σ∞ ≥≤≥ Σσδε?
-
- [*] ╧σ≡Γ√Θ ±εΓσ≥: ∩ε∞σ±≥Φ≥σ ∩εδφεσ Φ∞ ⌠αΘδα Γ ΩαΓ√≈ΩΦ Γ ΣΦαδεπεΓε∞ εΩφσ
- ∩≡Φ ±ε⌡≡αφσφΦΦ. ╩επΣα ┬√ ±ετΣαΣΦ≥σ ±ΓεΘ ∩σ≡Γ√Θ Java ⌠αΘδ, ΣΓαµΣ√ ΩδΦΩφσ≥σ
- φα φσ∞ Γ ╧≡εΓεΣφΦΩσ, Γ√ßσ≡Φ≥σ "┴δεΩφε≥" Φτ ΣΦαδεπα "╬≥Ω≡√≥ⁿ ± ∩ε∞ε∙ⁿ■" , Φ
- ┴δεΩφε≥ ∩σ≡σ±≥αφσ≥ ΣεßαΓδ ≥ⁿ ≡α±°Φ≡σφΦσ ".txt" Ω ┬α°Φ∞ .java ⌠αΘδα∞.
-
- ┬≥ε≡εΘ ±εΓσ≥: ┴δεΩφε≥ εµΦΣασ≥ Γ Ωεφ÷σ ΩαµΣεΘ ±≥≡εΩΦ ≥σΩ±≥εΓεπε ⌠αΘδα ∩α≡≤
- ±Φ∞ΓεδεΓ "ΓετΓ≡α≥ Ωα≡σ≥ΩΦ/∩σ≡σ⌡εΣ φα φεΓ≤■ ±≥≡εΩ≤" , φσµσδΦ ∩≡ε±≥ε ±Φ∞Γεδ
- "φεΓα ±≥≡εΩα" Ωε≥ε≡√Θ εß√≈φε Φ±∩εδⁿτ≤σ≥± Γ Unix. ╚±∩εδⁿτ≤Θ≥σ Σαφφ≤■
- ∩≡επ≡α∞∞≤ Σδ ∞εΣΦ⌠ΦΩα÷ΦΦ Γ±σ⌡ ±≥≡εΩ ⌠αΘδα ± Φ±⌡εΣφ√∞ ≥σΩ±≥ε∞:
-
- /*
- * Usage: jre crlf file1.java file2.java ... fileN.java
- */
-
- import java.io.*;
- class crlf {
- public static void main(String s[]){
- byte b[]; byte p;
- FileInputStream is;
- BufferedOutputStream os;
- File f;
- for (int i=0; i < s.length;i++){
- try{
- f=new File(s[i]);
- b=new byte[(int)f.length()];
- is = new FileInputStream(f);
- is.read(b); is.close();
- os = new BufferedOutputStream(
- new FileOutputStream(s[i]),b.length);
- p='?';
- for(int j=0; j < b.length; j++){
- if((p!='\r')&&(b[j]=='\n')) os.write('\r');
- p=b[j]; os.write(p);
- }
- os.flush(); os.close();
- }catch(IOException e){
- System.err.println(e.toString());
- }
- }
- }
- }
-
-
- ▌≥ε≥ ∩≡ε±≥εΘ ΩεΣ ∩≡επ≡α∞∞√, Ωε≥ε≡α ≈Φ≥ασ≥ ⌠αΘδ Φ τα∩Φ±√Γασ≥ σπε
- ß≤⌠σ≡ΦτεΓαφφε.
-
- ╬≥Ωε∞∩ΦδΦ≡≤Θ≥σ "javac crlf.java" Φ τα∩≤±≥Φ≥σ ± ∩ε∞ε∙ⁿ■
- java crlf outfile.txt
- Φφα≈σ ∩≡ε±≥ε Φ±∩εδⁿτ≤Θ≥σ Wordpad Γ∞σ±≥ε ┴δεΩφε≥α. Wordpad ∞εµφε φαΘ≥Φ ≈σ≡στ
- ∞σφ■ ╧≤±Ω->╧≡επ≡α∞∞√->╤≥αφΣα≡≥φ√σ->WordPad
-
- *(╫α±≥ⁿ 2) ╩αΩ ∞φσ ΦτßαΓΦ≥ⁿ± ε≥ ±εεß∙σφΦ "out of environment variable
- space"?
-
- [*] ▌≥ε ±εεß∙σφΦσ ∞εµσ≥ ∩ε ΓΦ≥ⁿ± ∩εΣ Windows, ΩεπΣα ┬√ Φ±∩εδⁿτ≤σ≥σ ΣδΦφφ√σ
- CLASSPATH Φ∞σφα. ┬α∞ φσεß⌡εΣΦ∞ε ≤ΓσδΦ≈Φ≥ⁿ ∩≡ε±≥≡αφ±≥Γε ∩σ≡σ∞σφφ√⌡ ±≡σΣ√. ┬
- Windows 95,8 ΣεßαΓⁿ≥σ Γ ±ΓεΘ c:\windows\system.ini ⌠αΘδ ±δσΣ≤∙Φσ ±≥≡εΩΦ:
-
- [NonWindowsApp]
- CommandEnvSize=4096
-
-
- ┬ NT ∙σδΩφΦ≥σ ∩≡αΓεΘ Ωφε∩ΩεΘ φα "╠εσ∞ ╩ε∞∩ⁿ■≥σ≡σ", Γ√ßσ≡Φ≥σ "╤ΓεΘ±≥Γα" Φ φα
- ταΩδαΣΩσ "╧σ≡σ∞σφφ√σ ±≡σΣ√" ≤ΓσδΦ≈≥σ τφα≈σφΦσ COMSPEC Σε φσεß⌡εΣΦ∞εΘ
- ΓσδΦ≈Φφ√.
-
- ┬ pστ≤δⁿ≥α≥σ Γ ┬α°σ∞ config.sys ∩ε ΓΦ≥ⁿ± ≈≥ε-≥ε ≥Φ∩α ²≥επε:
-
- shell=command /e:4096
-
-
- ------------------------------
-
- 3. ╬ß∙α Φφ⌠ε≡∞α÷Φ
-
- 1. (╫α±≥ⁿ 3) ▀Γδ σ≥± δΦ Java "╬≥Ω≡√≥εΘ" ΦδΦ "╟αΩ≡√≥εΘ"?
-
- [*] ╤∩σ÷Φ⌠ΦΩα÷ΦΦ Java αß±εδ■≥φε ε≥Ω≡√≥√, Φ δ■ßεΘ ≈σδεΓσΩ ∞εµσ≥
- ≡σαδΦτεΓα≥ⁿ "≈Φ±≥≤■" JVM Φ Σ≡ε Java API. Sun ΓΩδ■≈ασ≥ Γ ΩφΦπΦ
- Addison-Wesley, ±εΣσ≡µα∙Φσ ±∩σ÷Φ⌠ΦΩα÷ΦΦ Java, ßσ±±≡ε≈φ≤■,
- φσ∩≡σ≡√Γασ∞≤■, ßσ±∩δα≥φ≤■ δΦ÷σφτΦ■.
-
- Sun ≥αΩµσ εßσ±∩σ≈ΦΓασ≥ ±ΓεßεΣφ√Θ Σε±≥≤∩ Ω Φ±⌡εΣφ√∞ ΩεΣα∞ Java.
- ╤∞ε≥≡Φ≥σ http://java.sun.com/communitysource/
-
- ╚±∩εδⁿτεΓαφΦσ ≥ε≡πεΓεΘ ∞α≡ΩΦ Java φσ ≥≡σß≤σ≥ δΦ÷σφτΦ≡εΓαφΦ ε≥ Sun.
-
- ╬≥φε±Φ≥σδⁿφα ε≥Ω≡√≥ε±≥ⁿ Java ≡στΩε Γ√Σσδ σ≥± φα ⌠εφσ ±Φ±≥σ∞, Ωε≥ε≡√σ
- Σε±≥≤∩φ√ ≥εδⁿΩε ε≥ εΣφεπε ∩ε±≥αΓ∙ΦΩα, ≈ⁿΦ Φφ≥σ≡⌠σΘ±√ φα∩Φ±αφ√ Γ
- α≥∞ε±⌠σ≡σ ±σΩ≡σ≥φε±≥Φ, ταΩ≡√≥εΘ Σδ ≤≈α±≥Φ , ≈ⁿΦ ΓδαΣσδⁿ÷√ φσ
- Σε∩≤±Ωα■≥ ΩεφΩ≤≡σφ÷ΦΦ ∞σµΣ≤ ≡σαδΦτα÷Φ ∞Φ εΣφεπε Φ ≥επε µσ API,
- ≡α±±∞α≥≡ΦΓα Φτ∞σφσφΦ API ΩαΩ ±≥≡α≥σπΦ≈σ±Ωεσ ε≡≤µΦσ ∩≡ε≥ΦΓ
- ΩεφΩ≤≡σφ≥εΓ. ╬ß√≈φε ≥αΩΦσ ±Φ±≥σ∞√ ⌡α≡αΩ≥σ≡Φτ≤■≥± , ΩαΩ Φ∞σ■∙Φσ
- "δΦ≈φ√Θ"(ταΩ≡√≥√Θ) API, Ωε≥ε≡εσ ∩≤ßδΦΩ≤σ≥± ∩ετΣφσσ ΦδΦ φσ ∩≤ßδΦΩ≤σ≥±
- ΓεΓ±σ, ∩ετΓεδ σΣΦφ±≥Γσφφε∞≤ ∩ε±≥αΓ∙ΦΩ≤ Σε±≥Φ≈ⁿ ∩≡σΦ∞≤∙σ±≥Γα Σδ
- ε±≥αδⁿφ√⌡ ±ΓεΦ⌡ ∩≡εΣ≤Ω≥εΓ. ╩αΩ ∩≡αΓΦδε, ≥αΩΦσ ταΩ≡√≥√σ, "≈α±≥φ√σ"
- ±Φ±≥σ∞√ φσ ∩≡σΣε±≥αΓδ ■≥ ±ΓεΦ⌡ Φ±⌡εΣφ√⌡ ΩεΣεΓ.
-
- 2. (╫α±≥ⁿ 3) ╩≤Σα φα∩≡αΓΦ≥ⁿ Ωεπε-φΦß≤Σⁿ, ταΣα■∙σπε Γε∩≡ε±, ε≥Γσ≥ φα
- Ωε≥ε≡√Θ σ±≥ⁿ Γ Σαφφε∞ FAQ?
-
- [*] FAQ Σδ ∩≡επ≡α∞∞Φ±≥εΓ Java ∞εµφε φαΘ≥Φ φα http://www.afu.com, πΣσ
- Γ ±σΩ÷ΦΦ ╒.⌡ ∞εµφε φαΘ≥Φ ε≥Γσ≥ φα ┬α° Γε∩≡ε±...
-
- ╥α∞ ∞εµφε φαΘ≥Φ ε≥Γσ≥ φα Bα° Γε∩≡ε± Φ ≤ΓΦΣσ≥ⁿ, Ω≤Σα εß≡α∙α≥ⁿ± ∩≡Φ
- ß≤Σ≤∙Φ⌡ Γε∩≡ε±α⌡. ╧≡Φ ²≥ε∞, ∩εß√ΓαΓ εΣΦφ ≡ατ, ┬√ φαΓσ≡φ Ωα ∩≡ΦΣσ≥σ Φ
- σ∙σ ≡ατ. ╤≈Φ≥ασ≥± ²δσ∞σφ≥α≡φεΘ ΓσµδΦΓε±≥ⁿ■ ∩σ≡σΣ ∩ε±√δΩεΘ δ■ß√⌡
- Γε∩≡ε±εΓ Γ π≡≤∩∩≤ φεΓε±≥σΘ ∩ε±∞ε≥≡σ≥ⁿ FAQ - ┬α° Γε∩≡ε± ∞εµσ≥ ß√≥ⁿ ≥α∞
- ε∩Φ±αφ.
-
- ┬ εß∙σ∞ FAQ Σδ δ■ßεΘ π≡≤∩∩√ φεΓε±≥σΘ ∞εµφε φαΘ≥Φ, ∩≡ε±∞α≥≡ΦΓα ∩ε≥εΩ
- ±εεß∙σφΦΘ, ∞εµφε ≥αΩµσ ∩εΦ±Ωα≥ⁿ ≈σ≡στ Deja News (╤∞ε≥pΦ≥σ Γε∩pε± 1.4),
- ΦδΦ ≈σpστ αφεφΦ∞φ√Θ FTP φα ftp://rtfm.mit.edu. ╧≤≥ⁿ Σεδµσφ Γ√πΣ Σσ≥ⁿ
- ≥αΩ :
- /pub/usenet-by-group/comp.lang.java.programmer/Java_Programmers_FAQ,
- ≈≥ε ∞εµσ≥ ∩≡ΦΓσ±≥Φ Ω Φ±Ωε∞ε∞≤ φα∩≡ ∞≤■, ≥αΩ ΩαΩ ∩≡ε÷σ±± Σε±≥≤∩α Γ
- ≤Ωαταφφ√σ ΣΦ≡σΩ≥ε≡ΦΦ ταΘ∞σ≥ φσΩε≥ε≡εσ Γ≡σ∞ . ╩≡ε∞σ ≥επε, ┬√ ∞εµσ≥σ
- ∩≡ε±∞ε≥≡σ≥ⁿ Φ∞σφα π≡≤∩∩ φεΓε±≥σΘ φα ≥ε∞ µσ ftp ±αΘ≥σ Γ ΣΦpσΩ≥εpΦΦ
- /pub/usenet-by-hierarchy/. ╥α∞ σ±≥ⁿ ΣΦpσΩ≥εpΦΦ ≥αΩΦσ, ΩαΩ alt/, ba/,
- ca/, comp/, Φ ∩εΣΣΦpσΩ≥εpΦΦ Γ φΦ⌡, φα∩pΦ∞σp, Φ ≥.∩. ▌≥ε ∩ε∞εµσ≥ ┬α∞
- Φ±±δσΣεΓα≥ⁿ ∞Φ≡ φεΓε±≥φ√⌡ π≡≤∩∩ ± ∩ε∞ε∙ⁿ■ FAQ.
-
- ┼±δΦ ≤ ┬α± φσ≥ αφεφΦ∞φεπε Σε±≥≤∩α FTP, ≥ε ∞εµφε ≥αΩµσ ∩εδ≤≈Φ≥ⁿ Σε±≥≤∩
- Ω α≡⌡Φ┬α∞ rtfm.mit.edu ≈σ≡στ mail-±σ≡Γσ≡. ╧ε°δΦ≥σ ∩ε E-mail ±εεß∙σφΦσ
- Ω mail-server@rtfm.mit.edu ±ε ±δεΓε∞ "help" Γ ≥σδσ ±εεß∙σφΦ Σδ
- ∩εδ≤≈σφΦ ßεδσσ ∩εΣ≡εßφεΘ Φφ⌠ε≡∞α÷ΦΦ.
-
- ┼±δΦ ┬√ ⌡ε≥Φ≥σ ∩ε±∞ε≥≡σ≥ⁿ ε∩≡σΣσδσφΦ ≥αΩΦ⌡ Internet ±≥αφΣα≡≥εΓ ΩαΩ
- FTP, telnet, ∩ε±σ≥Φ≥σ ±αΘ≥ IETF ∩ε αΣ≡σ±≤ http://www.ietf.org, πΣσ
- ∞εµφε φαΘ≥Φ Γ±σ RFC (τα∩≡ε±√ φα Ωε∞σφ≥α≡ΦΦ).
-
- 3. (╫α±≥ⁿ 3) ╫≥ε Σσδα≥ⁿ, σ±δΦ φσ φα°σδ τΣσ±ⁿ ε≥Γσ≥α φα ±ΓεΘ Γε∩≡ε±?
-
- [*] ┬σ°α≥ⁿ± . ╬Σφετφα≈φε! :-)
-
- ╟αΘΣΦ≥σ φα http://www.dejanews.com/home_ps.shtml
-
- * ┬ "Newsgroups" Γ√ßσ≡Φ≥σ "comp.lang.java.programmer" (ΦδΦ δ■ß≤■
- Σ≡≤π≤■).
- * ┬ ∩εδσ "Subject" φαΘΣΦ≥σ "Frotteur" (ΦδΦ δ■ß≤■ Σ≡≤π≤■ Φφ≥σ≡σ±≤■∙≤■ Γα±
- ≥σ∞≤).
- * ┬√ßσ≡Φ≥σ "Create Filter"
- * ╬≥Ω≡εσ≥± φεΓ√Θ ΣεΩ≤∞σφ≥, Γ Ωε≥ε≡ε∞ ±δσΣ≤σ≥ Γ√ß≡α≥ⁿ ±±√δΩ≤
-
- nnn Documents (πΣσ nnn - φσΩεσ ≈Φ±δε).
-
- ┬∩εδφσ Γετ∞εµφε, ≈≥ε Γ√ φαΘΣσ≥σ φσ±ΩεδⁿΩε ε≥Γσ≥εΓ φα Γα° Γε∩≡ε±. ╫α±≥ⁿ Φτ
- φΦ⌡ ∞εµσ≥ εΩατα≥ⁿ± φσ∩εδφ√∞Φ, α φσΩε≥ε≡√σ Φ ΓεΓ±σ φσΓσ≡φ√∞Φ. ╫≥ε ∩εΣσδα≥ⁿ,
- ²≥ε ταδεµσφε Γ ∩≡Φ≡εΣσ Usenet Φ ßσ±∩δα≥φεΘ Φφ⌠ε≡∞α÷ΦΦ Γεεß∙σ. ┼±δΦ Γ√ φσ
- φα°δΦ Φφ≥σ≡σ±≤■∙σπε Γα± ε≥Γσ≥α - ∩ε°δΦ≥σ ±ΓεΘ Γε∩≡ε± Γ φαΦßεδσσ ∩εΣ⌡εΣ ∙≤■
- φⁿ■±π≡≤∩∩≤. Hσ τα±ε≡ Θ≥σ φⁿ■±π≡≤∩∩√ Ω≡ε±±∩ε±≥Φφπε∞. ╟φα≥εΩΦ φσΣεδ■ßδΦΓα■≥
- ≥αΩεΘ ±≥Φδⁿ ∩εΓσΣσφΦ Φ, ±Ωε≡σσ Γ±σπε, ∩≡εΦπφε≡Φ≡≤■≥ ταΣαφφ√Θ ≥αΩΦ∞ εß≡ατε∞
- Γε∩≡ε±.
-
- ─δ ∩εΦ±Ωα Γ φⁿ■±α⌡ ≡σΩε∞σφΣ≤σ≥± ≥αΩµσ ταπδ φ≤≥ⁿ ∩ε ±δσΣ≤■∙Φ∞ ±±√δΩα∞:
- http://sunsite.unc.edu/java/cgi-bin/query
- Φ http://asknpac.npac.syr.edu/
-
- ╟Σσ±ⁿ ∞εµφε ∩≡εΓσ±≥Φ ∩εΦ±Ω ∩ε ∩≤ßδΦΩα÷Φ ∞ Φφ⌠ε±σ≡Γσ≡α Javaworld:
- http://www.javaworld.com/search.html
-
- *(╫α±≥ⁿ 3) ╤≤∙σ±≥Γ≤■≥ δΦ ±∩Φ±ΩΦ ≡α±±√δεΩ Φφ⌠ε≡∞α÷ΦΦ ∩ε Java?
-
- [*] ─ε±≥α≥ε≈φε ∩εδφ√Θ Φ⌡ ∩σ≡σ≈σφⁿ ∞εµφε φαΘ≥Φ τΣσ±ⁿ:
-
- http://java.miningco.com/msub7.htm
-
- *(╫α±≥ⁿ 3) ├Σσ ∞εµφε φαΘ≥Φ εΩεφ≈α≥σδⁿφ√σ ±∩σ÷Φ⌠ΦΩα÷ΦΦ Java Language?
-
- [*] ┬ εß∙σ∞ ±δ≤≈ασ φα http://java.sun.com.
-
- ┬ ≈α±≥φε±≥Φ:
-
- http://java.sun.com/docs/books/jls/html/index.html (Java 1.0)...
-
- ...ε∩Φ±αφΦσ Γφ≤≥≡σφφΦ⌡ Ωδα±±εΓ Java 1.1:
-
- http://java.sun.com/products/jdk/1.1/docs/guide/innerclasses/spec/innercla
- sses.doc.html
-
- ...εßφεΓδσφΦ Java 1.1:
-
- http://java.sun.com/docs/books/jls/html/1.1Update.html
-
- ...Java API:
-
- http://java.sun.com/products/jdk/1.1/docs/api
-
- ▌≥Φ ∞α≥σ≡Φαδ√ ≥αΩµσ Σε±≥≤∩φ√ Γ ΓΦΣσ ΩφΦπ (τα ∩εΣ≡εßφε±≥ ∞Φ εß≡α∙αΘ≥σ±ⁿ φα
- Γσß-±σ≡Γσ≡). ╥αΩµσ ≡σΩε∞σφΣ≤σ∞ ∩ε±∞ε≥≡σ≥ⁿ "╨ατ· ±φσφΦ Φ ─ε∩εδφσφΦ "
- ("Clarifications and Amendments"):
- http://java.sun.com/docs/books/jls/clarify.html.
-
- ╤∩σ÷Φ⌠ΦΩα÷ΦΦ ΓΦ≡≥≤αδⁿφεΘ ∞α°Φφ√ ∞εµφε φαΘ≥Φ φα:
- http://docs.sun.com:80/ab2/coll.127.1/@Ab2CollToc?subject=java
-
- *├Σσ ∞επ≤ φαΘ≥Φ Φφ⌠ε≡∞α÷Φ■ ε ∩≡εσΩ≥Φ≡≤■∙Φ⌡± Java API?
-
- [*] JavaSoft ∩≡ΦΣσ≡µΦΓασ≥± ∩εδΦ≥ΦΩΦ ±ετΣαφΦ API ±εΓ∞σ±≥φε ± δΦΣσ≡α∞Φ
- ≡ατ≡αßε≥εΩ Γ εßδα±≥Φ Java, ± ∩ε±δσΣ≤■∙σΘ ∩≤ßδΦΩα÷ΦσΘ ≈σ≡φεΓ√⌡ ±∩σ÷Φ⌠ΦΩα÷ΦΘ
- Σδ εß∙σπε ≡α±±∞ε≥≡σφΦ Φ εß±≤µΣσφΦ . ╧δαφ√ JavaSoft φα±≈σ≥ φεΓ√⌡ API Φ∙Φ≥σ
- φα: http://java.sun.com:80/products/api-overview/index.html
- APIs φα⌡εΣ ∙Φσ± ∩εΣ ≡α±±∞ε≥≡σφΦσ∞ Σδ ΓΩδ■≈σφΦ Γ JDK 1.2 φα⌡εΣ ≥± φα:
-
- http://java.sun.com/products/jdk/preview/docs/
-
- *(╫α±≥ⁿ 3)─αΓφε Φ ßστ≤±∩σ°φε ≡ατ√±ΩΦΓα■ "Naming Conventions" Γ ±≥Φδσ Java.
-
- [*] ╧ε±∞ε≥≡Φ≥σ ±σΩ÷Φ■ "Naming Conventions" Γ ±∩σ÷Φ⌠ΦΩα÷ΦΦ τ√Ωα:
-
- http://java.sun.com/docs/books/jls/html/6.doc.html#11186
-
- ╥αΩµσ πδ φⁿ≥σ φα ≈σ≡φεΓεΘ Γα≡Φαφ≥ ±≥αφΣα≡≥α ΩεΣΦ≡εΓαφΦ φα Java (αΓ≥ε≡ -
- Doug Lea):
-
- http://gee.cs.oswego.edu/dl/html/javaCodingStd.html
-
- ╥αΩµσ ±≥εΦ≥ ∩ε±∞ε≥≡σ≥ⁿ ±σΩ÷Φ■ naming conventions Σαφφεπε FAQ'α.
-
- *(╫α±≥ⁿ 3)├Σσ ß√ ∩ε±∞ε≥≡σ≥ⁿ ±∩Φ±εΩ ε°ΦßεΩ, φαΘΣσφφ√⌡ Γ JDK?
-
- [*] Hα Java Developer Connection http://java.sun.com/jdc ∩σ≡σ≈Φ±δσφ√ Γ±σ
- ΦτΓσ±≥φ√σ Sun ε°ΦßΩΦ Γ Java, τα Φ±Ωδ■≈σφΦσ∞ ε°ΦßεΩ Γ ±Φ±≥σ∞σ ßστε∩α±φε±≥Φ.
- Hα ε≥Ω≡√≥≤■ ∩≤ßδΦΩα÷Φ■ ε°ΦßεΩ Γ ±Φ±≥σ∞σ ßστε∩α±φε±≥Φ φαδεµΦδ Γσ≥ε ╤αφεΓ±ΩΦΘ
- legal department. ┼±δΦ Γ√ φσ εßφα≡≤µΦδΦ ±ΓεσΘ ε°ΦßΩΦ Γ ±∩Φ±Ωσ - ∞εµφε
- ∩ε±δα≥ⁿ ≡α∩ε≡≥ εß ε°ΦßΩσ ≈σ≡στ http://java.sun.com:80/cgi-bin/bugreport.cgi
-
- ╬ß τα≥σδⁿφε ∩≡εΓσ≡ⁿ≥σ, φσ≥ δΦ Γ ±∩Φ±Ωσ Γα°σΘ ε°ΦßΩΦ: Γε-∩σ≡Γ√⌡, ≥α∞ µσ
- ∞εµσ≥ ß√≥ⁿ ε∩≤ßδΦΩεΓαφε ≡σ°σφΦσ ∩≡εßδσ∞√ Φ, Γε-Γ≥ε≡√⌡, φσ Φ ßστ ≥επε
- ταφ ≥√⌡ δ■ΣσΘ ±εεß∙σφΦ ∞Φ εß ≤µσ ΦτΓσ±≥φ√⌡ ε°ΦßΩα⌡.
-
- ╥α∞ µσ ∞εµφε ±ε±≥αΓΦ≥ⁿ RFE (Request For Enhancement - τα∩≡ε± φα ≤δ≤≈°σφΦσ)
- ΦδΦ ∩εΣφ ≥ⁿ Γε∩≡ε± εß ≤Σεß±≥Γσ Φ±∩εδⁿτεΓαφΦ ΩαΩεΘ-δΦßε Γετ∞εµφε±≥Φ.
- ┬ετ∞εµφε Σαµσ ∩≡επεδε±εΓα≥ⁿ τα ±∞σφ≤ ∩≡Φε≡Φ≥σ≥α φα Φ±∩≡αΓδσφΦσ ΩεφΩ≡σ≥φεΘ
- ε°ΦßΩΦ. ╟α≡σπΦ±≥≡Φ≡≤Θ≥σ±ⁿ φα Java Developer Connection (⌡αδ Γα, ±²≡):
- http://java.sun.com/jdc. ╟α≥σ∞ ±≥≤∩αΘ≥σ φα
- http://developer.javasoft.com/developer/bugParade/#votes
-
- *(╫α±≥ⁿ 3)─δ ΩαΩΦ⌡ Ωε∞∩·■≥σ≡εΓ σ±≥ⁿ ≡σαδΦτα÷ΦΦ Java? ╤≤∙σ±≥Γ≤σ≥ δΦ Java
- Σδ Win3.1?
-
- [*] Hσ∩εδφ√Θ ±∩Φ±εΩ ≡σαδΦτα÷ΦΘ JDK ∞εµφε φαΘ≥Φ φα
- http://java.sun.com/cgi-bin/java-ports.cgi
- ╤∩Φ±εΩ ±Φ±≥σ∞ (Γσ±ⁿ∞α Γ∩σ≈α≥δ ■∙ΦΘ), φα Ωε≥ε≡√⌡ ≡αßε≥ασ≥ GPL Kaffee JVM
- Σε±≥≤∩σφ φα http://www.transvirtual.com/ports.html
-
- ╤≤∙σ±≥Γ≤σ≥ φσ±ΩεδⁿΩε ≡σαδΦτα÷ΦΘ Java ∩εΣ Win3.1. IBM'εΓ±ΩΦΘ ADK1.02 ∞εµφε
- ∩εΦ±Ωα≥ⁿ ∩ε ±δσΣ≤■∙Φ∞ ±±√δΩα∞:
-
- * http://ncc.hursley.ibm.com/javainfo/latest/answers/faq0.html
- * http://www.alphaworks.ibm.com/formula
-
- IBM, φα≡ Σ≤ ± Σ≡≤πΦ∞Φ, ≥αΩµσ ∩≡σΣδαπασ≥ ≡σαδΦτα÷Φ■ Java ∩εΣ Linux.
- IBM'εΓ±ΩΦΘ Jikes Φ∙Φ≥σ φα http://www.alphaworks.ibm.com/. Hα alphaworks,
- Γεεß∙σ πεΓε≡ , ∞εµφε φαΘ≥Φ φσ∞αδε ∩εδστφ√⌡ Γσ∙σΘ, profiler jinsight,
- φα∩≡Φ∞σ≡.
-
- ╧εΣΣσ≡µΩ≤ Java Φ∞σσ≥ NetscapeNavigator ∩εΣ Win3.1. Java, εΣφαΩε, φΦΩεπΣα φσ
- ß≤Σσ≥ ⌡ε≡ε°ε ∩εΣΣσ≡µΦΓα≥ⁿ± ∩εΣ Win3.1 Φτ-τα ε≥±≤≥±≥ΓΦ Γ Win3.1
- ²δσ∞σφ≥α≡φ√⌡ Γσ∙σΘ, εµΦΣασ∞√⌡ ε≥ ±εΓ≡σ∞σφφεΘ ε∩σ≡α÷ΦεφφεΘ ±Φ±≥σ∞√ (Γ ∩σ≡Γ≤■
- ε≈σ≡σΣⁿ ΣδΦφφ√⌡ Φ∞σφ Φ ∩εΣΣσ≡µΩΦ ∞φεπε∩ε≥ε≈φε±≥Φ (multithreading)).
-
- ╥αΩµσ πδ φⁿ≥σ φα JavaSoft'εΓ±ΩΦΘ φαßε≡ JavaPC, ∩≡σεß≡ατ≤■∙ΦΘ Γα° PC Γ
- ΩδΦσφ≥±Ω≤■ Java-±Φ±≥σ∞≤ (Φ, ∩ε µσδαφΦ■, φαταΣ Γ Win3.1/DOS). ╬φ
- ∩≡σΣφατφα≈σφ Σδ ∩≡επ≡α∞∞φ√⌡ OEM'εΓ Φ ßεδⁿ°Φ⌡ Ωε≡∩ε≡α÷ΦΘ, Φ±∩εδⁿτ≤■∙Φ⌡
- ßεδⁿ°εσ ΩεδΦ≈σ±≥Γε ±≥α≡√⌡ Ωε∞∩·■≥σ≡εΓ, φε Γ√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ σπε Φ φα
- ≡α±∩ε±δσΣφΦ⌡ ∞εΣσδ ⌡ Pentium III:
- http://java.sun.com/products/javapc/index.html. JavaPC ∩≡εΣαΓασ∞α τα $100,
- ≥≡σß≤σ≥ Σδ ≡αßε≥√ 486'≤■ ± 8MB Φ ∞ε∙φσσ. ┬ ε≥δΦ≈ΦΦ ε≥ 16-ßΦ≥φ√⌡ Γσ≡±ΦΘ
- NetscapeNavigator'α Φ Microsoft'εΓ±Ωεπε InternetExplorer'α, ∩≡σΣε±≥αΓδ ■∙Φ⌡
- JVM ±εΓ∞σ±≥Φ∞≤■ ≥εδⁿΩε ± JDK API 1.0.2, JavaPC ∩≡σΣε±≥αΓδ σ≥ Γετ∞εµφε±≥ⁿ
- Φ±∩εδⁿτεΓα≥ⁿ ∩≡επ≡α∞∞√, φα∩Φ±αφφ√σ ± Φ±∩εδⁿτεΓαφΦσ∞ JDK API 1.1, φα
- Ωε∞∩·■≥σ≡α⌡ ∩εΣ ≤∩≡αΓδσφΦσ∞ DOS Φ Windows3.x.
-
- *(╫α±≥ⁿ 3) ├Σσ ∞εµφε φαΘ≥Φ Φφ⌠ε≡∞α÷Φ■ ∩ε Java3D?
-
- * Java 3D FAQ, ≡α±∩εδεµσφφ√Θ φα
- http://tintoy.ncsa.uiuc.edu/~srp/java3d/faq.html, ±Ωε≡σσ Γ±σπε ε≥Γσ≥Φ≥ φα
- Φφ≥σ≡σ±≤■∙Φσ Γα± Γε∩≡ε±√. Hα≡ Σ≤ ± εß∙σΘ Φφ⌠ε≡∞α÷ΦσΘ ∩ε Java3D εφ ±εΣσ≡µΦ≥
- Φ ±εΓσ≥√ ∩ε ∩≡επ≡α∞∞Φ≡εΓαφΦ■ ± Φ±∩εδⁿτεΓαφΦσ∞ ²≥επε API.
-
- *(╫α±≥ⁿ 3) ╫≥ε ≥αΩεσ "├≡≤∩∩√ ╧εδⁿτεΓα≥σδσΘ Java"?
-
- [*] ╤≤∙σ±≥Γ≤σ≥ ßεδⁿ°εσ ΩεδΦ≈σ±≥Γε π≡≤∩∩ ∩εδⁿτεΓα≥σδσΘ Java (Java User Group
- - JUG) ∩ε Γ±σ ∞≤ ∞Φ≡≤, ΩαΩ ∩≡αΓΦδε Γ πε≡εΣα⌡ Φ Γ ÷σφ≥≡α⌡ ≡ατ≡αßε≥ΩΦ
- ≥σ⌡φεδεπΦΘ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ . ╫α±≥Φ≈φ√Θ ±∩Φ±εΩ ± Ωεε≡ΣΦφα≥α∞Φ ∞εµσ≥
- ß√≥ⁿ φαΘΣσφ φα http://sunsite.unc.edu/javafaq/usergroups.html.
-
- ┼±δΦ ┬√ φσ ∞εµσ≥σ φαΘ≥Φ JUG φα ∞σ±≥σ ∩≡εµΦΓαφΦ /≤≈σß√, ┬√ ∞εµσ≥σ ±ετΣα≥ⁿ σσ
- ±α∞Φ - ²≥ε ∩≡ε±≥ε Φ Γ∩εδφσ ∩≡Φσ∞δΦ∞ε.
-
- *(╫α±≥ⁿ 3) ╫≥ε ≥αΩεσ Java Bean (Σε±δεΓφε - τσpφα Java)?
-
- [*] Java Bean - ²≥ε Java Ωδα±±, Ωε≥ε≡√Θ ≤ΣεΓδσ≥Γε≡ σ≥ φσΩε≥ε≡√∞ ∩≡ε±≥√∞
- ≤±δεΓΦ ∞. ╥αΩ, ΩαΩ εφ ≤ΣεΓδσ≥Γε≡ σ≥ ≤±δεΓΦ ∞, εφ ∞εµσ≥ ß√≥ⁿ δσπΩε εß≡αßε≥αφ
- ≤≥ΦδΦ≥α∞Φ, ±εσΣΦφ ■∙Φ∞Φ ╟σ≡φα Γ∞σ±≥σ Γε Γ≡σ∞ Φ±∩εδφσφΦ . Java Beans -
- ∞φεπεΩ≡α≥φε Φ±∩εδⁿτ≤σ∞√σ Ωε∞∩εφσφ≥√ ∩≡επ≡α∞∞.
-
- ─≤∞αΘ≥σ ∩≡ε Java Beans Γ ∩≡επ≡α∞∞α⌡, ΩαΩ ∩≡ε Ω≤ßΦΩΦ Γ Lego. ┬∞σ±≥ε
- ±ΩδαΣ√ΓαφΦ Γ∞σ±≥σ Ω≤ßΦΩεΓ, ┬√ ∞εµσ≥σ δσπΩε ±δεµΦ≥ⁿ Γ∞σ±≥σ Ωδα±±√ Φ εφΦ
- ß≤Σ≤≥ ∩εΣ⌡εΣΦ≥ⁿ Φ ≡αßε≥α≥ⁿ ± Σ≡≤π-Σ≡≤πε∞. ╤∞. http://www.jc100.org/.
- ╤∞ Java Beans FAQ φα http://java.sun.com/beans/faq/faq.general.html.
-
- *(╫α±≥ⁿ 3) ├Σσ ∞επ≤ φαΘ≥Φ ∩≡Φ∞σ≡√ Φ±∩εδⁿτεΓαφΦ ßΦßδΦε≥σΩΦ Ωδα±±εΓ Java?
-
- [*] ╒ε≡ε°Φσ ∩≡Φ∞σ≡√, ΩαΩ Φ±∩εδⁿτεΓα≥ⁿ ±≥αφΣα≡≥φ√σ ßΦßδΦε≥σΩΦ σ±≥ⁿ Γ
- ΣΓ≤⌡≥ε∞φΦΩσ "┴ΦßδΦε≥σΩΦ Ωδα±±εΓ Java" φα∩Φ±αφφ√σ ╫σφ, ╦Φ, ╩≡α∞α Φ
- ε∩≤ßδΦΩεΓαφ√σ Addison Wesley. ╬ΣΦφ ∩≡επ≡α∞∞Φ±≥ ∩≡εΩε∞σφ≥Φ≡εΓαδ: "╩επΣα ∞φσ
- φσεß⌡εΣΦ∞ε Φ±∩εδⁿτεΓα≥ⁿ φστφαΩε∞√σ Γσ∙Φ Φτ ±≥αφΣα≡≥φεΘ ßΦßδΦε≥σΩΦ, ∩σ≡Γεσ,
- ≈≥ε Σσδα■, ²≥ε ≈Φ≥α■ Φ⌡ ∩≡Φ∞σ≡√." ╬φΦ Σε±≥≤∩φ√ Γ εφδαΘφσ φα
- http://java.sun.com/docs/books/chanlee/second_edition/vol1/examples.html Φ
- http://java.sun.com/docs/books/chanlee/second_edition/examples.html
-
- *(╫α±≥ⁿ 3) ╩αΩ ∞φσ ≥ε≈φε ≤τφα≥ⁿ, ΩαΩα Γσp±Φ Java φα ∞εσΘ ±Φ±≥σ∞σ?
-
- [*] Hα ±Φ±≥σ∞α⌡ ╤εδ ≡Φ± ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ Ωε∞∞αφΣ≤ pkginfo, φα∩≡Φ∞σ≡:
-
- pkginfo -l SUNWjvrt
-
- Hα ≈≥ε εφα Σα±≥ ∩≡ΦßδΦτΦ≥σδⁿφε ≥αΩεΘ ε≥Γσ≥:
-
- PKGINST: SUNWjvrt
- NAME: JavaVM run time environment
- CATEGORY: system
- ARCH: sparc
- VERSION: 1.1.6,REV=1998.07.30.16.21
- BASEDIR: /
- VENDOR: Sun Microsystems, Inc.
- ...Φ ≥Σ
-
- ╥αΩµσ ∞εµφε ∩ε∩≡εßεΓα≥ⁿ
-
- java -fullversion
-
- ⌡ε≥ ²≥ε Φ φσε⌠Φ÷Φαδⁿφε-∩εΣΣσ≡µΦΓασ∞α Ωε∞∞αφΣα, Φ εφα Φ±≈στδα Γ JDK 1.2.
- ╥αΩµσ ∩ε∩≡εß≤Θ≥σ
-
- java -version
-
- ------------------------------
-
- 4. ╩ε∞∩Φδ ≥εp√ Φ Γ±∩ε∞επα≥σδⁿφ√σ ∩pεπpα∞∞√
-
- 1. (╫α±≥ⁿ 4) ╤≤∙σ±≥Γ≤■≥ δΦ Java-αφαδεπΦ lex'a Φ yacc'a ΦδΦ µσδα≥σδⁿφε
- flex'α Φ bison'α?
-
- [*] ╤≤∙σ±≥Γ≤σ≥ αφαδεπ lex'α φατ√Γσ∞√Θ JavaLex Φ αφαδεπ yacc'α
- φατ√Γασ∞√Θ CUP.
-
- LALR(1) ∩αp±σp JavaLex Φ JavaCup:
- http://www.cs.princeton.edu/~appel/modern/java/
-
- LL(k) ∩αp±σp JavaCC: http://www.suntest.com/JavaCC/
- LALR(1) ∩αp±σp SableCC (αΓ≥εp - McGill U.)
- http://www.sable.mcgill.ca/sablecc/index.html, Φτφα≈αδⁿφε
- ±ετΣαΓαΓ°ΦΘ± ∩εΣ δΦ÷σφτΦσΘ GNU.
-
- 2. (╫α±≥ⁿ 4) ├Σσ ∞επ≤ φαΘ≥Φ τα∩≤≥√Γα≥σδⁿ (obfuscator) ßαΘ≥ ΩεΣα?
-
- [*] ╟α∩≤≥√Γα≥σδΦ Java τα∞σφ ■≥ ε≡ΦπΦφαδⁿφ√σ Φ∞σφα Ωδα±±εΓ, ∩εδσΘ Φ
- ∞σ≥εΣεΓ Γ ßαΘ≥ΩεΣσ φα ßσ±±∞√±δσφφ√σ ±≥≡εΩΦ. Obfuscator'√ Γ≥ε≡επε
- ∩εΩεδσφΦ , ∩ε Γδ ■∙Φσ± ±σΘ≈α±, ≥αΩµσ τα∩≤≥√Γα■≥ ∩ε≡ ΣεΩ Φ±∩εδφσφΦ Φ
- ΩεΣΦ≡≤■≥ ±≥≡εΩεΓ√σ Ωεφ±≥αφ≥√. ╨ατ≡αßε≥≈ΦΩΦ Φ±∩εδⁿτ≤■≥ τα∩≤≥√Γα≥σδΦ φα
- ±ΓεΦ α∩∩δσ≥√, σ±δΦ εφΦ ⌡ε≥ ≥ ±Ω≡√≥ⁿ ±ΓεΘ ΩεΣ ε≥ Σ≡≤πΦ⌡. ╩αΩ ∩≡αΓΦδε,
- ┬√ φσ ß≤Σσ≥σ ²≥επε Σσδα≥ⁿ ± ∩≡επpα∞∞α∞Φ, Ωε≥ε≡√σ ┬√ Γ√ΩδαΣ√Γασ≥σ φα
- ┬α° Γσß-±αΘ≥ Σδ Σ≡≤πΦ⌡. ▌≥ε ε≥≡Φ÷ασ≥ ⌠Φδε±ε⌠Φ■ "ε≥Ω≡√≥√⌡ Φ±⌡εΣφ√⌡
- ΩεΣεΓ", ∩ετΓεδ ■∙σΘ ┬α∞ ≤≈Φ≥ⁿ± φα ≈≤µε∞ ΩεΣσ Φ ≤≈Φ≥ⁿ± Σ≡≤πΦ∞ φα
- ┬α°σ∞.
-
- Zelix KlassMaster ²≥ε Ωε∞∞σ≡≈σ±ΩΦΘ τα∩≤≥√Γα≥σδⁿ. ╬φ Φ∞σσ≥ ±ΓεßεΣφε
- ≡α±∩≡ε±≥≡αφ σ∞≤■ Γσ≡±Φ■ φα http://www.zelix.com/klassmaster
- ─≡≤πεΘ Ωε∞∞σ≡≈σ±ΩΦΘ τα∩≤≥√Γα≥σδⁿ, ±ε ±ΓεßεΣφε ταπ≡≤µασ∞εΘ
- Φ±∩√≥α≥σδⁿφεΘ Γσ≡±ΦσΘ φα http://www.4thpass.com/SourceGuard. ╥αΩµσ, φα
- http://www.primenet.com/~ej/ Φ
- http://www.math.gatech.edu/~mladue/HoseMocha.java, σ±≥ⁿ ±ΓεßεΣφε
- ≡α±∩≡ε±≥≡αφ σ∞√σ ≡αßε≥√ ±≥≤Σσφ≥εΓ Φ Σp≤πΦ⌡ δ■ΣσΘ.
-
- ╤εεß∙αδΦ±ⁿ ∩≡εßδσ∞√ ∩≡Φ Φ⌡ Φ±∩εδⁿτεΓαφΦΦ ± JDK 1.1.
-
- ─αφφ√Θ τα∩≤≥√Γα≥σδⁿ ß√δ ∩εδφε±≥ⁿ■ εßφεΓδσφ Σδ ∩εδφεΘ ±εΓ∞σ±≥Φ∞ε±≥Φ ±
- JDK 1.1: http://www.monmouth.com/~neil/Obfuscate.html
-
- ╟α∩≤≥√Γα≥σδΦ ∩≡σΣφατφα≈σφ√ Σδ εß∞αφα ΣσΩε∞∩Φδ ≥ε≡εΓ. ─σΩε∞∩Φδ ≥ε≡√
- ∩σ≡σΓεΣ ≥ ßαΘ≥ ΩεΣ φαταΣ Γ Φ±⌡εΣφ√Θ ≥σΩ±≥ Java. Mocha ß√δ ∩σ≡Γ√∞ Φ
- φαΦßεδσσ ΦτΓσ±≥φ√∞ Φτ ΣσΩε∞∩Φδ ≥ε≡εΓ; εφ ≤µσ ßεδⁿ°σ φσ ∩εΣΣσ≡µΦΓασ≥± .
- Hα
- http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
- Γ√δεµσφ ΣσΩε∞∩Φδ ≥ε≡ (φα∩Φ±αφφ√Θ φα ╤++). ╥αΩ, ΩαΩ ²≥ε ╤++, σ±≥ⁿ
- ≡ατφ√σ Γσ≡±ΦΦ Σδ ΩαµΣεΘ α≡⌡Φ≥σΩ≥≤≡√ (φ■-φ■!). ╥αΩµσ σ±≥ⁿ Ωε∞∞σ≡≈σ±ΩΦσ
- ∩≡εΣ≤Ω≥√, ≥αΩΦσ, ΩαΩ SourceAgain ±
- http://www.ahpah.com/
-
- http://www.meurrens.org/ip-Links/Java/codeEngineering/ - ε≈σφⁿ ⌡ε≡ε°√Θ
- FAQ ∩ε ≥σ∞α∞: ╧ε±≥≡εσφΦσ Java ╩εΣα (Java Code Engineering) Φ ╨σΓσ≡±φ√Θ
- └φαδΦτ (Reverse Engineering).
-
- 3. (╫α±≥ⁿ 4) ╩αΩΦσ ∩≡επ≡α∞∞√ Φ±∩εδⁿτ≤■≥± Σδ ±ετΣαφΦ .zip ⌠αΘδεΓ,
- ±εΓ∞σ±≥Φ∞√⌡ ± Java ∩≡επ≡α∞∞α∞Φ?
- (φα∩pΦ∞σp, classes.zip, moz3_0.zip)
-
- [*] ╚±∩εδⁿτ≤Θ≥σ ≤≥ΦδΦ≥≤ jar Φτ JDK 1.1(.1):
- jar [ ε∩÷ΦΦ ] [∞αφΦ⌠σ±≥] Φ≥επεΓ√Θ_⌠αΘδ Φ±⌡εΣφ√Θ_⌠αΘδ
- [Φ±⌡εΣφ√σ_⌠αΘδ√]
-
- Hα∩pΦ∞σp:
- jar cvf myJarFile.jar *.class
-
- ±ετΣα±≥ ±µα≥√Θ α≡⌡ΦΓ
- jar cvfO myJarFile.zip *.class
-
- ±ετΣασ≥ ∩εδφε≡ατ∞σ≡φ√Θ (φσ±µα≥√Θ) α≡⌡ΦΓ (τα∞σ≈αφΦσ: ε∩÷Φ 'O'
- φσεß⌡εΣΦ∞α Σδ JDK1.0.2)
-
- Hα Unix'α⌡ ∞εµφε ≥αΩµσ Φ±∩εδⁿτεΓα≥ⁿ:
- zip -rn ".class" my_file.zip *
-
- ─ε∞α°φ ±≥≡αφΦ÷α Info-ZIP: http://www.cdrom.com/pub/infozip/
- ╤ΓσµΦΘ Φ±⌡εΣφ√Θ ΩεΣ: ftp://ftp.uu.net/pub/archiving/zip/src/zip21.zip
-
- Hσ≥±ΩσΘ∩εΓ±Ωα Γσ≡±Φ ≤≥ΦδΦ≥√ Ωε∞∞αφΣφεΘ ±≥≡εΩΦ JAR Σδ ≤∩αΩεΓΩΦ Φ
- ∩εΣ∩Φ±Φ φατ√Γασ≥± "zigbert". ╬φΦ ≥αΩµσ Φ∞σ■≥ ≤≥ΦδΦ≥√ ± GUI,
- φα∩Φ±αφφ√σ φα Java. ─ε∩εδφΦ≥σδⁿφ≤■ Φφ⌠εp∞α÷Φ■ ∞εµφε ∩ε±∞ε≥pσ≥ⁿ τΣσ±ⁿ:
- http://developer.netscape.com/software/signedobj/jarpack.html
-
- ┼±δΦ ┬√ α≡⌡ΦΓΦ≡≤σ≥σ ⌠αΘδ√ .class Σδ JDK 1.0.2 ± ∩ε∞ε∙ⁿ■ ZIP (Σδ 1.1
- φ≤µφε Φ±∩εδⁿτεΓα≥ⁿ Jar):
- 1. α≡⌡ΦΓΦ≡≤Θ≥σ ┬α°Φ ⌠αΘδ√ ßστ Φ±∩εδⁿτεΓαφΦ Ωε∞∩≡σ±±ΦΦ (∞εµφε
- Φ±∩εδⁿτεΓα≥ⁿ WinZip 6.2 Φ Γ√°σ);
- Ωε∞∞αφΣα Unix:
-
- zip -r0 classes.zip <directories>
-
- 2. ╙ßσΣΦ≥σ±ⁿ, ≈≥ε πδαΓφ√Θ Ωδα±± Γ α≡⌡ΦΓσ Γ ΩεφσΓε∞ Ωα≥εδεπσ αp⌡ΦΓα.
- (Σ≡≤πΦ∞Φ ±δεΓα∞Φ, φσ ±ετΣαΓαΘ≥σ α≡⌡ΦΓ ± foo/bar/myMain.class,
- σ±δΦ, Ωεφσ≈φε, Ωδα±± myMain φσ φα⌡εΣΦ≥± Γ ∩αΩσ≥σ ± Φ∞σφσ∞
- foo.bar. ╚φα≈σ εφ Σεδµσφ φατ√Γα≥± ∩≡ε±≥ε myMain.class). ┬α°
- ∩αΩσ≥ Σεδµσφ φα⌡εΣΦ≥± Γ α≡⌡ΦΓσ, Φ±∩εδⁿτ≤ ±εε≥Γσ≥±≥Γ≤■∙Φσ
- ⌠αΘδεΓεΘ ±Φ±≥σ∞σ ∩≤≥Φ.
- 3. ╧ε∞σ±≥Φ≥σ αp⌡ΦΓ Γ Ωα≥αδεπ ± ┬α°σΘ .html ±≥pαφΦ≈ΩεΘ.
- 4. Hα∩Φ°Φ≥σ φσ≈≥ε ∩εΣεßφεσ φΦµσ∩≡ΦΓσΣσφφε∞≤ ≥²π≤ Γ .html ±≥≡αφΦ÷σ:
-
- <APPLET CODEBASE="."
- ARCHIVE=my_zip_file.zip,myOtherZip.zip,thirdfile.zip
- CODE="my_main_class.class"
- WIDTH=600 HEIGHT=250>
- </APPLET>
-
-
- Hα≈Φφα ± JDK 1.1, ∩≡Φ∞σ≡ ≥²πα APPLET ± Φ±∩εδⁿτεΓαφΦσ∞ ⌠αΘδα Jar
- Γ√πδ ΣΦ≥ ±δσΣ≤■∙Φ∞ εß≡ατε∞:
-
- <APPLET ARCHIVE=myfile.jar
- CODE=myapplet.class
- WIDTH=600 HEIGHT=250>
- </APPLET>
-
-
- ▌≥Φ ±≥≡εΩΦ ß≤Σ≤≥ Φ±∩εδⁿτεΓα≥ⁿ α∩δσ≥ ∩εΣ φατΓαφΦσ∞ myapplet, Ωε≥ε≡√Θ
- φα⌡εΣΦ≥± Γ ⌠αΘδσ myfile.jar. ╧≡Φ∞σ≡ ≥²πα APPLET ± Φ±∩εδⁿτεΓαφΦσ∞ jar
- ⌠αΘδα Σδ ⌡≡αφΦσφΦ ∩αΩσ≥εΓ Ωδα±±εΓ Γ√πδ ΣΦ≥ ≥αΩ:
-
- <APPLET ARCHIVE="myclasses.jar"
- CODE="linden.net.MyApplet.class"
- WIDTH=480
- HEIGHT=120>
- </APPLET>
-
-
- ┬√ ∞εµσ≥σ ≤Ωατα≥ⁿ φσ±ΩεδⁿΩε Φ∞σφ jar ⌠αΘδεΓ ≈σ≡στ τα∩ ≥≤■. ╘ε≡∞α≥
- PKZIP Φ±∩εδⁿτεΓαφ Σδ ∩≡σΣ±≥αΓδσφΦ ⌠αΘδεΓ Jar'εΓ.
-
- *(╫α±≥ⁿ 4) ╠επ≤ δΦ ±Ωε∞∩ΦδΦ≡εΓα≥ⁿ ∩≡επ≡α∞∞≤ φα Java Γ ßΦφα≡φ√Θ
- Φ±∩εδφ σ∞√Θ ⌠αΘδ, .exe, φα PC?
-
- [*] ╩ε∞∩Φδ ÷Φ Γ ±Φ±≥σ∞φεταΓΦ±Φ∞√Θ ΩεΣ φα≡≤°ασ≥ ∩σ≡σφε±Φ∞ε±≥ⁿ, Ωε≥ε≡α
- Γδ σ≥± εΣφΦ∞ Φτ πδαΓφ√⌡ ∩≡σΦ∞≤∙σ±≥Γ Java. ┼±δΦ ┬√ ⌡ε≥Φ≥σ ±ετΣα≥ⁿ
- Φ±∩εδφ σ∞√Θ ΩεΣ Σδ ≥επε, ≈≥εß√ ß√δε δσπ≈σ ≡α±∩≡ε±≥≡αφ ≥ⁿ Φ Φ±∩εδⁿτεΓα≥ⁿ
- ∩≡επ≡α∞∞√, εß≡α≥Φ≥σ±ⁿ Γ∞σ±≥ε ≥αΩεπε ≡σ°σφΦ Ω Jar.
- HσΩε≥ε≡√σ Ωε∞∩αφΦΦ ∩≡εΦτΓεΣ ≥ ∩≡επ≡α∞∞φ√σ ∩≡εΣ≤Ω≥√ Σδ ≥αΩεΘ Ωε∞∩Φδ ÷ΦΦ.
- ╬ß≡α≥Φ≥σ±ⁿ φα ±≥≡αφΦ≈ΩΦ Symantec http://www.symantec.com, Supercede
- http://www.supercede.com, Φ Tower Technology http://www.twr.com. ─Γσ ∩σ≡Γ√σ
- ε≡Φσφ≥Φ≡εΓαφ√ φα Windows. Tower Technology ∩εΣΣσ≡µΦΓασ≥ φσ±ΩεδⁿΩε ΩδεφεΓ
- Unix.
-
- ╥αΩµσ σ±≥ⁿ ±εε≥Γσ≥±≥Γ≤■∙ΦΘ Ωε∞∩Φδ ≥ε≡, ≥αΩ φατ√Γασ∞√Θ native Java compiler,
- ε≥ ⌠Φ≡∞√ IBM, ΦτΓσ±≥φ√Θ ΩαΩ HPJ (High Performance Java -
- Γ√±εΩε∩≡εΦτΓεΣΦ≥σδⁿφ√Θ Java) Ωε∞∩Φδ ≥ε≡. ╬ΣΦφ Φτ ∩εδⁿτεΓα≥σδσΘ ∩≡Φ±δαδ
- ±εεß∙σφΦσ ε ≥ε∞, ≈≥ε ²≥ε≥ Ωε∞∩Φδ ≥ε≡ ±ετΣαδ 2╠ß Φ±∩εδφ σ∞√Θ ⌠αΘδ Φτ 12╩ß
- java ⌠αΘδα, Φ φσ ≡αßε≥αδ ∩≡Φ ²≥ε∞ ß√±≥≡σσ. ╬ß≡α≥Φ≥σ±ⁿ ∩ε αΣ≡σ±≤
- http://www.alphaworks.ibm.com/
-
- ╥αΩµσ ∩ε±∞ε≥≡Φ≥σ Instantiations JOVE
- http://www.instantiations.com/jove.htm,
- ±≥α≥ⁿ ε ∩≡εσΩ≥σ Toba
- http://research.microsoft.com/research/lt/toddpro/papers/coots97.pdf,
- µ≤≡φαδ Network World, "Vendors Rush To Speed Java Performance" ("╧ε±≥αΓ∙ΦΩΦ
- ±≥≡σ∞ ≥± ≤±Ωε≡Φ≥ⁿ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥ⁿ Java"), 9 ⌠σΓ≡αδ 1998,
- http://www.nwfusion.com/news/0209java.html
-
- ╩ε∞∩Φδ ÷Φ Γ ±Φ±≥σ∞φεταΓΦ±Φ∞√Θ ΩεΣ ±ΓεΣΦ≥ φα φσ≥ εΣφε Φτ ±α∞√⌡ τφα≈Φ≥σδⁿφ√⌡
- ∩≡σΦ∞≤∙σ±≥Γ Java: ∩σ≡σφε±Φ∞ε±≥ⁿ Φ±∩εδφ σ∞επε ΩεΣα. ╩≡ε∞σ ≥επε, σ±δΦ ┬√
- ⌡ε≥Φ≥σ, ≈≥εß√ ┬α°α Java DLL (ΦδΦ .exe) ΓταΦ∞εΣσΘ±≥ΓεΓαδα ± C++, ┬α∞
- φσεß⌡εΣΦ∞ε ε∩≡σΣσδΦ≥ⁿ, ΩαΩεΘ Φ∞σφφε Ωε∞∩Φδ ≥ε≡ C++ ┬α∞ φ≤µσφ Φ/ΦδΦ φα ±α∞ε∞
- Σσδσ ∩≡εΦτΓσ±≥Φ φσΩε≥ε≡εσ ±Γ τ√ΓαφΦσ ≈σ≡στ ∩εΣ⌡εΣ ∙ΦΘ Ωε∞∩Φδ ≥ε≡ C++. C++
- φσ ±εΣσ≡µΦ≥ ±≥αφΣα≡≥φεΘ ABI, ∩ε²≥ε∞≤ ±≤∙σ±≥Γ≤■≥ ßεδⁿ°Φσ ±δεµφε±≥Φ ±
- Γετ∞εµφε±≥ⁿ■ Ω ΓταΦ∞εΣσΘ±≥ΓΦ ∞. ╩αµΣ√Θ Ωε∞∩Φδ ≥ε≡ C++ Φ±∩εδⁿτ≤σ≥ ≡ατδΦ≈φ√σ
- ∞εΣσδΦ εß·σΩ≥εΓ, ≡ατδΦ≈φ√σ ±∩ε±εß√ Ωε∞∩εφεΓΩΦ ≈δσφεΓ Ωδα±±α Φ ≡ατδΦ≈φ√σ
- ±∩ε±εß√ ∞α±ΩΦ≡εΓαφΦ Φ∞╕φ Σδ linker-α.
-
- ╤ τ√Ωε∞ C ∞φεπε ∩≡ε∙σ. ┼ΣΦφ±≥Γσφφ√Θ Γε∩≡ε± Γ ≥ε∞, ΩαΩ ≤∩αΩεΓ√Γα■≥±
- ±≥≡≤Ω≥≤≡√ (φα∩≡Φ∞σ≡, Γ√≡αΓφΦΓα■≥± δΦ ÷σδ√σ ∩ε π≡αφΦ÷α∞ ≈σ≥√≡╕⌡ ßαΘ≥?). ┬±σ
- Ωε∞∩Φδ ≥ε≡√ C++ ∞επ≤≥ ΓταΦ∞εΣσΘ±≥ΓεΓα≥ⁿ ± ΩεΣε∞ φα C, ßδαπεΣα≡ εß· ΓδσφΦ ∞
- 'extern "C"'.
-
- ┬φΦ∞α≥σδⁿφε ≡α±±∞ε≥≡Φ≥σ Γε∩≡ε±, τα≈σ∞ ┬√ ⌡ε≥Φ≥σ ±Ωε∞∩ΦδΦ≡εΓα≥ⁿ Γ
- ±Φ±≥σ∞εταΓΦ±Φ∞√Θ ΩεΣ, Φ φσ≥ δΦ Γ ±α∞ε∞ τ√Ωσ Java ±∩ε±εßα ≤ΣεΓδσ≥Γε≡Φ≥ⁿ
- Γα°Φ ÷σδΦ. ╠εµσ≥ φαΘ≥Φ±ⁿ Γσ±Ωα ∩≡Φ≈Φφα Σδ ≥αΩεΘ Ωε∞∩Φδ ÷ΦΦ, φε εφα Σεδµφα
- ß√≥ⁿ Γ±σ±≥ε≡εφσσ ∩≡εΣ≤∞αφα.
-
- (╫α±≥ⁿ 4) ╩αΩ ∞φσ ∩ε±∞ε≥≡σ≥ⁿ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥ⁿ ε≥Σσδⁿφ√⌡ ≈α±≥σΘ ∞εσπε ΩεΣα
- φα Java (∩≡ε⌠ΦδΦ≡εΓα≥ⁿ σπε)?
-
- [*]java -prof MyClass
-
- Γ√Σα╕≥ φσΩε≥ε≡≤■ ε±φεΓφ≤■ Φφ⌠ε≡∞α÷Φ■ Γ ⌠αΘδ java.prof, ∩εΩατ√Γα■∙≤■
- ΩεδΦ≈σ±≥Γε Γ√τεΓεΓ ∞σ≥εΣα. ╤≥≡εΩΦ Φ∞σ■≥ ≥αΩ≤■ ±≥≡≤Ω≥≤≡≤:
- # of calls method called called by time spent
-
- (ΩεδΦ≈σ±≥Γε (Γ√τ√Γασ∞√Θ (τα≥≡α≈σφφεσ
- Γ√τεΓεΓ) ∞σ≥εΣ) (Ωσ∞ Γ√τΓαφ) Γ≡σ∞ )
-
- ╨αßε≥α Γ ±Φ±≥σ∞σ Unix, ┬√ ∞εµσ≥σ ε≥±ε≡≥Φ≡εΓα≥ⁿ ⌠αΘδ ± ∩ε∞ε∙ⁿ■, φα∩≡Φ∞σ≡,
- ≥αΩεΘ Ωε∞αφΣ√
-
- sort -r +82 <java.prof > java.sort
-
- ╙ ±≥ε≡εφφΦ⌡ ∩≡εΦτΓεΣΦ≥σδσΘ Φ∞σ■≥± Φφ±≥≡≤∞σφ≥√ Java Γ ßεδⁿ°σ∞ ΩεδΦ≈σ±≥Γσ Φ
- δ≤≈°σπε Ωα≈σ±≥Γα. ╬ΣΦφ Φτ ∩≡ε⌠ΦδΦ≡εΓ∙ΦΩεΓ Java - ²≥ε JProbe Profiler, εφ
- Σε±≥≤∩σφ ∩ε αΣ≡σ±≤ http://www.klg.com/jprobe. ╩αΩ τα Γδσφε, JProbe δσπΩε
- Φ±∩εδⁿτεΓα≥ⁿ. ─≡≤πΦ∞ ∩≡ε⌠ΦδΦ≡εΓ∙ΦΩε∞ Γδ σ≥± OptimizeIt, Ωε≥ε≡√Θ Σε±≥≤∩σφ
- ± http://www.optimizeit.com. ╙ ΩαµΣεπε Φτ ²≥Φ⌡ ∩≡ε⌠ΦδΦ≡εΓ∙ΦΩεΓ σ±≥ⁿ
- Γετ∞εµφε±≥ⁿ Φτ≤≈Φ≥ⁿ ΩαΩ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥ⁿ, ± ≤ΩαταφΦσ∞ ΩαΩεΘ ∞σ≥εΣ ±ΩεδⁿΩε
- Γ≡σ∞σφΦ ταφ δ, ≥αΩ Φ ≡α±±∞ε≥≡σ≥ⁿ Φ±∩εδⁿτεΓαφΦσ ∩α∞ ≥Φ, ± ≤ΩαταφΦσ∞ ΩαΩΦσ
- εß·σΩ≥√ φα⌡εΣ ≥± Γ ∩α∞ ≥Φ Φ ±ΩεδⁿΩε σ╕ Σδ φΦ⌡ Γ√Σσδσφε. ╬≈σφⁿ Γαµφε τφα≥ⁿ
- εßα ²≥Φ⌡ α±∩σΩ≥α. ┬ ∩ε±δσΣφσΘ Γσ≡±ΦΦ ±≡σΣ√ ≡ατ≡αßε≥ΩΦ CodeWarrior IDE
- http://www.metrowerks.com σ±≥ⁿ ∩≡ε⌠ΦδΦ≡εΓ∙ΦΩ ∩ε Γ≡σ∞σφΦ Σδ ΩεΣα Java. ╙
- ∩≡εΣ≤Ω≥α Java Workshop ε≥ Sun ≥αΩµσ Φ∞σσ≥± ∩≡ε⌠ΦδΦ≡εΓ∙ΦΩ ∩ε Γ≡σ∞σφΦ.
-
- JDK 1.2 ∩ε±≥αΓδ σ≥± ± φσΩε≥ε≡√∞Φ επ≡αφΦ≈σφφ√∞Φ Γ±≥≡εσφφ√∞Φ Γετ∞εµφε±≥ ∞Φ
- ∩≡ε⌠ΦδΦ≡εΓαφΦ . ┬ ταΓΦ±Φ∞ε±≥Φ ε≥ ┬α°Φ⌡ φ≤µΣ, ²≥επε ∞εµσ≥ ß√≥ⁿ ┬α∞ Φ
- Σε±≥α≥ε≈φε. ╩≡α≥Ω≤■ Φφ⌠ε≡∞α÷Φ■ ε ≥ε∞, ≈≥ε Γ±≥≡εσφε, ∞εµφε ∩εδ≤≈Φ≥ⁿ,
- τα∩≤±≥ΦΓ ±δσΣ≤■∙≤■ Ωε∞αφΣ≤:
-
- java -Xrunhprof:help
-
- Hα∩≡Φ∞σ≡, ┬√ ∞εµσ≥σ ≤ΓΦΣσ≥ⁿ, ΩαΩΦσ ∞σ≥εΣ√ ταφΦ∞α■≥ φαΦßεδⁿ°σσ Γ≡σ∞
- Γ√∩εδφσφΦ , Γ ±Γ τΦ ± ∩εΣ≡εßφε±≥ ∞Φ ≥≡α±±Φ≡εΓεΩ ±≥σΩα.
-
- (╫α±≥ⁿ 4) ╩επΣα Φ±∩εδⁿτ≤■ javadoc Φ φαµΦ∞α■ ∞√°ΩεΘ φα δ■ßεΘ Ωδα±± java,
- Ωε≥ε≡√Θ ΓΩδ■≈σφ Γ JDK ∩ε≈σ∞≤ ∩εδ≤≈α■ ±δσΣ≤■∙σσ ±εεß∙σφΦσ?
-
- Netscape is unable to find the file or directory named:
- /E|/Jwrkshop/JDK/bin/java.lang.Throwable.html
-
-
- (Netscape φσ ∞εµσ≥ φαΘ≥Φ ⌠αΘδ ΦδΦ ∩α∩Ω≤ ± Φ∞σφσ∞:
- /E|/Jwrkshop/JDK/bin/java.lang.Throwable.html)
-
- [*] ╤±√δΩΦ φα Ωδα±±√ JDK ∩≡σΣ∩εδαπα■≥, ≈≥ε Γ±σ ±πσφσ≡Φ≡εΓαφφ√σ html-⌠αΘδ√
- φα⌡εΣ ≥± Γ εΣφεΘ ∩α∩Ωσ Φ, Γ ΣσΘ±≥ΓΦ≥σδⁿφε±≥Φ, ≈≥ε Γ±σ ⌠αΘδ√ Σδ Γ±σ⌡
- Ωδα±±εΓ, φα Ωε≥ε≡√σ Φ∞σ■≥± ±±√δΩΦ, ±πσφσ≡Φ≡εΓαφ√ εΣφεΓ≡σ∞σφφε. Hσ≥
- Γετ∞εµφε±≥Φ ±πσφσ≡Φ≡εΓα≥ⁿ ⌠αΘδ√ Σε∩εδφΦ≥σδⁿφε ≥αΩ, ≈≥εß√ εφΦ ≤Ωατ√ΓαδΦ Σ≡≤π
- φα Σ≡≤πα, ΩαΩ ß√ ┬α∞ ²≥ε ⌡ε≥σδε±ⁿ.
-
- ┼±δΦ µσ ≤ ┬α± σ±≥ⁿ Φ±⌡εΣφ√Θ ≥σΩ±≥ Σδ Γ±σ⌡ ≥≡σß≤σ∞√⌡ Ωε∞∩εφσ≥ (ΓΩδ■≈α JDK
- Φ Γ±σ Ωδα±±√ ±≥ε≡εφφΦ⌡ ∩≡εΦτΓεΣΦ≥σδσΘ), ┬√ ∞εµσ≥σ Γφσ±≥Φ ±∩Φ±εΩ Γ±σ⌡ ±ΓεΦ⌡
- ∩αΩσ≥εΓ Φ Γ±σπε ∩≡ε≈σπε Γ Ωε∞αφΣφ≤■ ±≥≡εΩ≤ Σδ javadoc, ±πσφσ≡ε≡εΓαΓ Γ±σ
- Γ∞σ±≥σ ±≡ατ≤, φε ²≥ε εß≡σ∞σφΦ≥σδⁿφε. ╩εφσ≈φε, σ±δΦ ┬√ ∩εδ≤≈ΦδΦ φσΩε≥ε≡√σ
- ßΦßδΦε≥σΩΦ ΩαΩ ⌠αΘδ√ .class, Σαµσ Γ√∩εδφσφΦσ ²≥εΘ ≡αßε≥√ ß≤Σσ≥ φσ
- Σε±≥α≥ε≈φε.
-
- ╧ε∞Φ∞ε ²≥επε, javadoc φσ ±πσφσ≡Φ≡≤σ≥ ⌠αΘδεΓ ± Ωα≡≥ΦφΩα∞Φ - ┬α∞ φαΣε ß≤Σσ≥
- Γτ ≥ⁿ Φ⌡ Φτ ∩α∩ΩΦ ± Ωα≡≥ΦφΩα∞Φ, ≥α∞, πΣσ σ±≥ⁿ ΣεΩ≤∞σφ≥α÷Φ φα JDK API. ┬√
- ∞εµσ≥σ ∩≡ε±≥ε ±Ωε∩Φ≡εΓα≥ⁿ ²≥≤ ∩α∩Ω≤ ∩εδφε±≥ⁿ■ Γ ∩α∩Ω≤ ± ┬α°σΘ ±εß±≥ΓσφφεΘ
- ΣεΩ≤∞σφ≥α÷ΦσΘ. javadoc - ²≥ε ε≈σφⁿ ∩≡Φ ≥φα Ωεφ÷σ∩÷Φ , ± φσΩε≥ε≡√∞Φ
- φσΣε±≥α≥Ωα∞Φ ≡σαδΦτα÷ΦΦ.
-
- (╫α±≥ⁿ 4) ▀ ≡αßε≥α■ φαΣ ∩≡εσΩ≥ε∞ ± ßεδⁿ°Φ∞ ΩεδΦ≈σ±≥Γε∞ Ωδα±±εΓ Φ Φ±∩εδⁿτ≤■
- JDK. ╧σ≡σΩε∞∩Φδ ÷Φ ± φ≤δ ≡α±≥ πΦΓασ≥± φαΣεδπε, σ±δΦ ∩σ≡σΩε∞∩ΦδΦ≡≤■
- ΩαµΣ√Θ Ωδα±± ∩ε-ε≥Σσδⁿφε±≥Φ. ╩αΩ ∞επ≤ ∩σ≡σΩε∞∩ΦδΦ≡εΓα≥ⁿ Γ±╕ ±≡ατ≤?
-
- [*] ╧σ≡Γ√Θ ±∩ε±εß:
-
- javac *.java
-
- ┬≥ε≡εΘ ±∩ε±εß:
-
- javac -depend tip.java
-
- πΣσ "tip.java" ²≥ε Ωδα±± "φα Γσ≡°Φφσ αΘ±ßσ≡πα", φα∩≡Φ∞σ≡, Ωε≥εp√Θ ταΓΦ±σ≥
- (Φ±∩εδⁿτ≤σ≥) Γ±σ ε±≥αδⁿφ√σ Ωδα±±√. ╩αΩ ∩≡αΓΦδε, Φ∞ εΩατ√Γασ≥± ┬α° ε±φεΓφεΘ
- Ωδα±±. ╬ΣφαΩε, ΦτΓσ±≥φε, ≈≥ε ε∩÷Φ "-depend" ≡αßε≥ασ≥ ± ε°ΦßΩα∞Φ Φ φα φσ╕
- φσ ±δσΣ≤σ≥ ∩εδαπα≥ⁿ± . ╥αΩµσ Γ ²≥ε∞ ±δ≤≈ασ φσ εßσ±∩σ≈ΦΓασ≥± ∩α≡αδδσδⁿφα
- Ωε∞∩Φδ ÷Φ , Ωε≥ε≡α ∞εµσ≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφα φα ∞φεπε∩≡ε÷σ±±±ε≡φ√⌡ ±Φ±≥σ∞α⌡.
-
- ┴στ ε∩÷ΦΦ "-depend", ±≥αφΣα≡≥φα Ωε∞αφΣα "javac files" φσ ∩≡ε±∞α≥≡ΦΓασ≥
- ⌠αΘδ√ Γφσ φσ∩ε±≡σΣ±≥Γσφφε ∩≡Φ∞√Ωα■∙Φ⌡ ταΓΦ±Φ∞ε±≥σΘ Γ ∩εΦ±Ωα⌡ Φτ∞σφσφΦΘ
- Ωδα±±εΓ Σαδσσ Γ Φσ≡α≡⌡ΦΦ.
-
- ╬∩÷Φ -depend ≡σΩ≤≡±ΦΓφε Φ∙σ≥ ταΓΦ±Φ∞ε±≥Φ Ωδα±±εΓ Φ ∩σ≡σΩε∞∩ΦδΦ≡≤σ≥ Φ⌡.▌≥α
- ε∩÷Φ φσ ∩ε∞επασ≥, σ±δΦ ≤ ┬α± Φ±∩εδⁿτ≤■≥± ΣΦφα∞Φ≈σ±ΩΦ ταπ≡≤µασ∞√σ Ωδα±±√,
- Φ∞σφα Ωε≥ε≡√⌡ φσ ∞επ≤≥ ß√≥ⁿ ε∩≡σΣσδσφ√ Ωε∞∩Φδ ≥ε≡ε∞ Γ π≡α⌠σ ταΓΦ±Φ∞ε±≥σΘ.
- Hα∩≡Φ∞σ≡, ┬√ Φ±∩εδⁿτ≤σ≥σ ≈≥ε-≥ε Γ≡εΣσ:
-
- Class.forName(argv[0]);
-
- └Γ≥ε≡ ²≥επε ΩεΣα Σεδµσφ ß√≥ⁿ ≤Γσ≡σφ, ≈≥ε Ωδα±±√, Ωε≥ε≡√σ ∞επ≤≥ ß√≥ⁿ
- ΣΦφα∞Φ≈σ±ΩΦ ταπ≡≤µσφ√, ≤∩ε∞ φ≤≥√ Γ ⌠αΘδσ Makefile.
-
- (╫α±≥ⁿ 4) ╧ε≈σ∞≤ ∩εδ≤≈α■ ε°ΦßΩ≤ java.lang.UnsatisfiedLinkError ∩≡Φ
- ∩ε∩√≥Ωσ τα∩≤±Ωα Java ∩≡επ≡α∞∞√, ±εΣσ≡µα∙σΘ Γ√τεΓ√ ±Φ±≥σ∞φεταΓΦ±Φ∞√⌡ ∞σ≥εΣεΓ
- (Native Method)?
-
- [*] ┬α°α ∩≡επ≡α∞∞α φσ ∞εµσ≥ φαΘ≥Φ ≡ατΣσδ σ∞√σ ßΦßδΦε≥σΩΦ ΦδΦ DLL.
-
- ╧≡Φ ≡αßε≥σ φα Windows 95/NT, ≤ßσΣΦ≥σ±ⁿ Γ ≥ε∞, ≈≥ε φσεß⌡εΣΦ∞α DLL
- ≡α±∩εδεµσφα ∩ε ≥ε∞≤ ∩≤≥Φ, Ωε≥ε≡√Θ ≤Ωαταφ Γ ∩σ≡σ∞σφφεΘ εΩ≡≤µσφΦ PATH. (▌≥ε
- ≥≡σßεΓαφΦσ ΣσΘ±≥ΓΦ≥σδⁿφε Σδ εßεΦ⌡ ±≥αφΣα≡≥εΓ, ΩαΩ Σδ ∩≡ΦδεµσφΦΘ, ≥αΩ Φ
- Σδ α∩∩δσ≥εΓ. ╧ε Ω≡αΘφσΘ ∞σ≡σ, σ±δΦ ┬√ ∩εδⁿτ≤σ≥σ±ⁿ Java Plug-in Σδ Σε±≥≤∩α
- Ω ±≥αφΣα≡≥φ√∞ Γετ∞εµφε±≥ ∞ Java Γ ┬α°σ∞ ß≡ε≤τσ≡σ).
-
- ┬ Solaris, ≤ßσΣΦ≥σ±ⁿ Γ ≥ε∞, ≈≥ε ∩σ≡σ∞σφφα εΩ≡≤µσφΦ LD_LIBRARY_PATH
- ΓΩδ■≈ασ≥ ∩≤≥ⁿ Ω ┬α°σΘ ßΦßδΦε≥σΩσ.
-
- ╟α∞σ≥ⁿ≥σ, ≈≥ε jdb Φ∙σ≥ ßΦßδΦε≥σΩΦ, Ω φατΓαφΦ ∞ Ωε≥ε≡√⌡ ΣεßαΓδσφ ±≤⌠⌠ΦΩ±
- "_g". ╥αΩΦ∞ εß≡ατε∞, σ±δΦ ┬√ φα∞σ≡σφ√ Φ±∩εδⁿτεΓα≥ⁿ jdb Γ Java ∩≡ΦδεµσφΦΦ,
- Ωε≥ε≡εσ Γ√τ√Γασ≥ ±Φ±≥σ∞φεταΓΦ±Φ∞√σ ∞σ≥εΣ√, ┬α∞ φσεß⌡εΣΦ∞ε ≤ßσΣΦ≥ⁿ± Γ ≥ε∞,
- ≈≥ε ±εε≥Γσ≥±≥Γ≤■∙Φσ ßΦßδΦε≥σΩΦ ≤∩ε∞ φ≤≥√ Γ ∩≤≥Φ ≤ jdb. ╥αΩΦσ "ε≥δαΣε≈φ√σ"
- ßΦßδΦε≥σΩΦ ∞επ≤≥ ß√≥ⁿ ∩≡ε±≥ε ∩σ≡σΦ∞σφεΓαφφ√∞Φ Ωε∩Φ ∞Φ εß√≈φ√⌡ ßΦßδΦε≥σΩ.
-
- Hα∩≡Φ∞σ≡, σ±δΦ ┬α°σ ∩≡ΦδεµσφΦσ Γ√τ√Γασ≥ ∞σ≥εΣ√ Φτ ßΦßδΦε≥σΩΦ ± Φ∞σφσ∞
- mynm.dll (Γ Windows) ΦδΦ mynm.so (Γ Solaris), ±Ωε∩Φ≡≤Θ≥σ Φ⌡ Γ ≥≤ µσ ∩α∩Ω≤
- ∩εΣ Φ∞σφσ∞ mynm_g.dll ΦδΦ mynm_g.so.
-
- (╫α±≥ⁿ 4) └φεφΦ∞φ√Θ Ωδα±± φσ Φ∞σσ≥ Σε±≥≤∩α Ω Γφσ°φσ∞≤ private ∞σ≥εΣ≤,
- ∩ε≈σ∞≤?
-
- [*] ▌≥ε ΦτΓσ±≥φα ε°ΦßΩα Γ JDK 1.1.4. ╚±⌡εΣφ√Θ ΩεΣ:
-
- public class MyDialog {
-
- void Setup() {
- addWindowListener( new WindowAdapter() {
- public void windowClosing(WindowEvent e) {
- myCloseWindow(); }
- }
- ); // Γφ≤≥≡σφφΦΘ αφεφΦ∞φ√Θ Ωδα±±
-
- }
-
- private void myCloseWindow() { // Γφσ°φΦΘ private ∞σ≥εΣ
- dispose();
- }
- }
-
- ▌≥ε≥ ΩεΣ τα÷ΦΩδΦΓασ≥ javac. ┬√⌡εΣε∞ ß≤Σσ≥ ±Σσδα≥ⁿ private ∞σ≥εΣ φσ private,
- ΦδΦ ∩εΦ∞σφεΓα≥ⁿ Γφ≤≥≡σφφΦΘ Ωδα±±. Sun Γ Ωε∞∩Φδ ≥ε≡σ ∩ε ≤∞εδ≈αφΦ■
- ≤±≥αφαΓδΦΓασ≥ ∩εδσ Σε±≥≤∩φ√∞ Σδ ∩αΩσ≥α.
-
- (╫α±≥ⁿ 4) ╩αΩΦσ ±σΘ≈α± ε±φεΓφ√σ ≡σδΦτ√ Java Φ Φ⌡ ±εΣσ≡µαφΦσ?
-
- [*] ╧εΩα σ±≥ⁿ ≥≡Φ ≡σδΦτα Java ε≥ Sun, ∩δ■± φσ±ΩεδⁿΩε Φ±∩≡αΓδσφφ√⌡ Γσ≡±ΦΘ (±
- ≥≡σ≥ⁿσΘ ÷Φ⌠≡εΘ ∩ε±δσ ≥ε≈ΩΦ). ╧σ≡σ≈Φ±δΦ∞ Φ⌡:
-
- * JDK 1.0.2
- ▌≥ε ß√δ ≡σδΦτ FCS Γ ∞ασ 1996 πεΣα. ┬ φσπε Γφσ±σφε φσ±ΩεδⁿΩε
- Φ±∩≡αΓδσφΦΘ Γ ±Φ±≥σ∞σ τα∙Φ≥√ JDK 1.0.
- * JDK 1.1
- ┬ ²≥ε∞ ≡σδΦτσ (⌠σΓ≡αδⁿ 1997) ΓΓσΣσφα φεΓα ∞εΣσδⁿ ±εß√≥ΦΘ Γ εΩεφφε∞
- Φφ≥σ≡⌠σΘ±σ. ╥αΩµσ ±≥αφΣα≡≥φ√∞Φ ±≥αφεΓ ≥± ∩εΣΣσ≡µΩα JDBC Φ ∩εΣΣ≡µΩα
- beans. ╚τ∞σφ╕φ Φ ±≥αφΣα≡≥ΦτεΓαφ Φφ≥σ≡⌠σΘ± Ω ±Φ±≥σ∞φεταΓΦ±Φ∞ε∞≤ ΩεΣ≤
- JNI. ┬σΣσφ√ ≥αΩµσ Φ Γφ≤≥≡σφφΦσ Ωδα±±√.
- * JDK 1.2
- ┬ ²≥ε∞ ≡σδΦτσ (ΣσΩαß≡ⁿ 1998) ßΦßδΦε≥σΩα Swing ±≥αδα ±≥αφΣα≡≥ε∞. Swing
- - ²≥ε φαßε≡ ∞ε∙φ√⌡ ±Φ±≥σ∞φε-φσταΓΦ±Φ∞√⌡ π≡α⌠Φ≈σ±ΩΦ⌡ Ωε∞∩εφσφ≥εΓ.
-
- (╫α±≥ⁿ 4) ╩αΩα ≡ατφΦ÷α ∞σµΣ≤ jre Φ java?
-
- [*] ╘≤φΩ÷Φεφαδⁿφε εφΦ ²ΩΓΦΓαδσφ≥φ√, ± φσßεδⁿ°Φ∞Φ ε≥δΦ≈Φ ∞Φ Γ ≡αßε≥σ ±
- classpath ∩ε ≤∞εδ≈αφΦ■ Φ ∩εΣΣσ≡µΦΓασ∞√∞Φ ε∩÷Φ ∞Φ. ┬ε ΦτßσµαφΦσ ∩≤≥αφΦ÷√,
- Ωε∞αφΣα jre ß√δα ≤Σαδσφα Γ JDK 1.2. ┬∞σ±≥ε φσ╕ ε±≥αΓδσφα Ωε∞αφΣα "java" ΩαΩ
- Γ bin ≥αΩ Φ Γ jre/bin.
-
- jre.exe ∩≡επ≡α∞∞α τα∩≤±Ωα java, Ωε≥ε≡α ∩ε±≥αΓδ σ≥± ± Java Runtime
- Environment. ╚±∩εδⁿτ≤■≥± ±ΓεΦ ±εß±≥Γσφφ√σ Γφ≤≥≡σφφΦσ ≤±≥αφεΓΩΦ ∩ε
- ≤∞εδ≈αφΦ■, Φπφε≡Φ≡≤■≥± ≤±≥αφεΓΩΦ εΩ≡≤µσφΦ CLASSPATH Φ Γ±╕, ≈≥εß√ φΦ
- ±≥ε δε Γ Ωε∞αφΣφεΘ ±≥≡εΩσ -cp ΦδΦ -classpath. ╧εΣ≡ατ≤∞σΓασ≥± , ≈≥ε ²≥ε
- φσ∞φεπε ∩≡ε∙σ Σδ ≥σ⌡, Ω≥ε ≥εδⁿΩε τα∩≤±Ωασ≥ φα Γ√∩εδφσφΦσ Java ∩≡επ≡α∞∞√, α
- φσ ≡ατ≡αßα≥√Γασ≥ Φ⌡.
-
- java.exe ∩≡επ≡α∞∞α τα∩≤±Ωα java, Ωε≥ε≡α ∩ε±≥αΓδ σ≥± ± JDK. ╚±∩εδⁿτ≤σ≥
- ≤±≥αφεΓΩΦ εΩ≡≤µσφΦ CLASSPATH ΩαΩ φα≈αδⁿφ≤■ ≥ε≈Ω≤ ∩εΦ±Ωα, α τα≥σ∞
- εß≡α∙ασ≥± Ω ±εß±≥Γσφφ√∞ Γφ≤≥≡σφφΦ∞ ∩α≡α∞σ≥≡α∞.
-
- ╬ßσ ±δ≤µα≥ εΣφεΘ Φ ≥εΘ µσ ÷σδΦ - τα∩≤±Ω ΓΦ≡≥≤αδⁿφεΘ Java ∞α°Φφ√ (JVM),
- Γ√∩εδφσφΦσ Γ φσΘ ∩≡ΦδεµσφΦ Java, τα≥σ∞ ε±≥αφεΓΩα JVM. ╚±⌡εΣφ√σ ≥σΩ±≥√
- jre.exe ∩ε±≥αΓδ ■≥± ± JDK. ╚±⌡εΣφ√σ ≥σΩ±≥√ java.exe ∩ε±≥αΓδ ■≥± ≥εδⁿΩε ±ε
- ±∩σ÷Φαδⁿφ√∞ ΣΦ±≥≡Φß≤≥ΦΓε∞ Φ±⌡εΣφ√⌡ ≥σΩ±≥εΓ JDK.
-
- (╫α±≥ⁿ 4) ╩αΩΦσ IDE (Integrated Development Environments - ╚φ≥σπ≡Φ≡εΓαφφ√σ
- ±≡σΣ√ ≡ατ≡αßε≥≈ΦΩα) ±≤∙σ±≥Γ≤■≥?
-
- [*] HΦµσ ∩σ≡σ≈Φ±δσφ√ ∩ε∩≤δ ≡φ√σ IDE:
-
- Apptivity (Progress) http://www.apptivity.com
- Bluette (±ΓεßεΣφε) http://blue.donga.ac.kr/bluette/index.html
- Chicory (±ΓεßεΣφε) http://www.chicory.com
- CodeWarrior Professional http://www.metrowerks.com
- Freebuilder http://www.freebuilder.org
- GRASP (±ΓεßεΣφε) http://www.eng.auburn.edu/grasp
- Grinder http://www.tpex.com
- Java WorkShop (Sun) http://www.sun.com/workshop/java
- Javelin, Visual Object
- Development for Java http://www.stepahead.com.au
- JBuilder (Inprise) http://www.inprise.com/jbuilder
- JDE Σδ emacs http://sunsite.auc.dk/jde/
-
- Kawa (Webcetera) http://www.tek-tools.com/kawa Metamata
- http://www.metamata.com NetBeans (Swing-based) http://www.netbeans.com
- PARTS alpha (ObjectShare) http://www.objectshare.com PowerJ (Sybase)
- http://www.sybase.com/products/powerj SilverStream
- http://www.silverstream.com Simplicity for Java
- http://www.datarepresentations.com Super Mojo (Penumbra)
- http://www.penumbrasoftware.com SuperCede (Asymetrix)
- http://www.supercede.com teikade (PFU Ltd) http://www.pfu.co.jp/teikade
- Together/J (Object Intl Inc.) http://www.oi.com Visaj (Imperial SW Tech)
- http://www.imperial-software-tech.co.uk VisualAge (IBM)
- http://www.software.ibm.com/ad/vajava Visual Cafe (Symantec)
- http://cafe.symantec.com Visual J++ (Microsoft) (φσ ≡σΩε∞σφΣ≤σ≥± ) Xelfi
- 0.94 http://www.xelfi.com
-
- *(Sect. 4) ╧ε≈σ∞≤ Visual J++ - ∩δε⌡εΘ Γ√ßε≡?
-
- ╧ε≥ε∞≤ ≈≥ε πδαΓφα ÷σδⁿ Microsoft - "╙φΦ≈≥εµσφΦσ Ω≡ε±±-∩δα≥⌠ε≡∞σφφεΘ Java"
-
- [*] ╬ßσ±∩σ≈σφΦσ ∩εδⁿτεΓα≥σδ■ Γετ∞εµφε±≥Φ δσπΩεπε ∩σ≡σφε±α ∩≡επ≡α∞∞ φα
- Σ≡≤πΦσ ∩δα≥⌠ε≡∞√ ∩≡ε≥ΦΓε≡σ≈Φ≥ ⌠Φφαφ±εΓ√∞ Φφ≥σ≡σ±α∞ Microsoft. MS -
- σΣΦφ±≥Γσφφα Ωε∞∩αφΦ Γ Ωε∞∩ⁿ■≥σ≡φεΘ ∩≡ε∞√°δσφφε±≥Φ, Ωε≥ε≡α αΩ≥ΦΓφε
- ∩√≥ασ≥± ∩εΣε≡Γα≥ⁿ Java. ▌≥ε φσ ∩≡σΣ∩εδεµσφΦσ - ─σ∩α≡≥α∞σφ≥ ▐±≥Φ÷ΦΦ φα
- εΣφε∞ Φτ ±≤Σσßφ√⌡ ≡ατßΦ≡α≥σδⁿ±≥Γ ± Microsoft, ≤∩ε∞Φφα Ωε∞∩αφΦ■, φατΓαδ σσ
- ±≥≡α≥σπΦ≈σ±ΩεΘ ÷σδⁿ■ - "≤φΦ≈≥εµσφΦσ Ω≡ε±±-∩δα≥⌠ε≡∞σφφεΘ Java ∩ε±≡σΣ±≥Γε∞
- τα≡αµσφΦ Java-≡√φΩα". ╟απδ φΦ≥σ φα
- http://www.usdoj.gov/atr/cases/f1700/1762.htm VJ++ ∞εµσ≥ Φ±∩εδⁿτεΓα≥ⁿ± ΩαΩ
- Java-±εΓ∞σ±≥Φ∞√Θ ∩≡εΣ≤Ω≥, φε ± ∩≡σΣδαπασ∞√∞Φ ∩ε ≤∞εδ≈αφΦ■ ≤±≥αφεΓΩα∞Φ, ²≥ε
- φσΓετ∞εµφε.
-
- ╧≡ε≥ΦΓ Microsoft ß√δε Γετß≤µΣσφε Σσδε Φτ-τα φσ±αφΩ÷ΦεφΦ≡εΓαφφ√⌡ Φτ∞σφσφΦΘ,
- ±Σσδαφφ√⌡ Γ Java. ╘σΣσ≡αδⁿφ√Θ ±≤Σⁿ Γ ∞α≡≥σ 1998 π. Σαδ Ωε∞∩αφΦΦ
- ∩≡σΣ∩Φ±αφΦσ, τα∩≡σ∙α■∙σσ Φ±∩εδⁿτεΓαφΦσ ²≥ΦΩσ≥εΩ, Γ√Σα■∙Φ⌡ J++ τα Java.
- ─≡≤πεσ ∩≡σΣ∩Φ±αφΦσ, Γ Ωε≥ε≡ε∞ ≥≡σßεΓαδε±ⁿ ≤±≥≡αφσφΦσ ∩≡σΣφα∞σ≡σφφεΘ
- φσ±εΓ∞σ±≥Φ∞ε±≥Φ ± Java, ß√δε Σαφε Microsoft Γ φε ß≡σ 1998 π.(φα∩ε∞φΦ∞, ≈≥ε
- Microsoft φσ ±ετΣαΓαδα Java, α Γ±σπε δΦ°ⁿ ∩εδ≤≈Φδα ε≥ Sun ∩≡αΓε φα σσ
- ≡α±∩≡ε±≥≡αφσφΦσ).
-
- ╤∩≡ε±Φ≥σ ≤ ┬α°σπε
- φα≈αδⁿ±≥Γα ΩαΩ
- Ωε∞⌠ε≡≥φε εφε ±σß ≈≤Γ±≥Γ≤σ≥, Φ±∩εδⁿτ≤ ∩≡εΣ≤Ω≥√ ε≥ Microsoft Γ ≥ε Γ≡σ∞
- ΩαΩ Ωε∞∩αφΦ Γ≥ πΦΓασ≥± Γ ■≡ΦΣΦ≈σ±ΩΦΘ Ωεφ⌠δΦΩ≥ Φτ-τα ∩≡σΣφα∞σ≡σφφε
- ±ετΣαφφ√⌡ φσ±εΓ∞σ±≥Φ∞ε±≥σΘ Γ ╧╬. ╤∩≡ε±Φ≥σ ΩαΩ εφε ±σß ≈≤Γ±≥Γ≤σ≥, ΩεπΣα
- ΣεΩαταφε, ≈≥ε Microsoft ⌡ε≈σ≥ επ≡αφΦ≈Φ≥ⁿ ∩εδⁿτεΓα≥σδ ≡α∞Ωα∞Φ εΣφεΘ ╬╤. ┬±σ
- ²≥ε ±Ωαταφε Σδ ≥επε, ≈≥εß√ τα∙Φ≥Φ≥ⁿ ┬α± ε≥ φσ∩≡αΓΦδⁿφεπε Γ√ßε≡α. ┬√ ∞εµσ≥σ
- ±±√δα≥ⁿ± φα ²≥Φ ⌠αΩ≥√, ΓφσΣ≡ Java Γ ┬α°σΘ Ωε∞∩αφΦΦ.
-
- ╩αΩ Java-∩≡επ≡α∞∞Φ±≥, ∩≡Φ±εσΣΦφΦ≥σ±ⁿ ∩εµαδ≤Θ±≥α Ω Java Lobby - φσταΓΦ±Φ∞εΘ
- ε≡παφΦτα÷ΦΦ, ∩≡σΣ±≥αΓδ ■∙σΘ φσΩε∞∞σ≡≈σ±ΩΦσ Φφ≥σ≡σ±√ Java. ▌≥ε Γ√ ∞εµσ≥σ
- ±Σσδα≥ⁿ ßσ±∩δα≥φε. ┬√ ∞εµσ≥σ ∩ε±σ≥Φ≥ⁿ http://www.javalobby.org Σδ
- ≤≥ε≈φσφΦ Σσ≥αδσΘ. ┼±≥ⁿ Σ≡≤πΦσ ∩≤≥Φ, ±∩ε±εß±≥Γ≤■∙Φσ ≡α±∩≡ε±≥≡αφσφΦ■ Java:
-
- * ╠εµφε Φ±∩εδⁿτεΓα≥ⁿ ±≡σΣ±≥Γα ≡ατ≡αßε≥ΩΦ Σ≡≤πΦ⌡ ∩ε±≥αΓ∙ΦΩεΓ. ╠εµφε
- ΩεφΓσ≡≥Φ≡εΓα≥ⁿ MS J++ Σδ ≡αßε≥√ ± Sun'εΓ±ΩΦ∞ JDK. ╟α Φφ±≥≡≤Ω÷Φ ∞Φ
- ∞εµφε εß≡α≥Φ≥ⁿ± φα http://www.orbiter.demon.co.uk/
- * ╠εµφε Φ±∩εδⁿτεΓα≥ⁿ Netscape Communicator (φσ Internet Explorer)
- * ┼±δΦ ßστ Internet Explorer φσ εßεΘ≥Φ±ⁿ, Φ±∩εδⁿτ≤Θ≥σ Java-∩δ≤πΦφ√.
- * ╚±∩εδⁿτ≤Θ≥σ ±≥αφΣα≡≥φ√Θ GNU JVM, Kaffe, Σ≡≤πΦσ IDE (ε≥ Sun, φα∩≡Φ∞σ≡.
- Hε φΦ Γ Ωεσ∞ ±δ≤≈ασ φσ Microsoft J++ SDK)
-
- * ┴σ±∩δα≥φ√σ Java-Ωε∞∩Φδ ≥ε≡√ Φ ∩δ≤πΦφ√ ∞εµφε Γτ ≥ⁿ φα
- http://java.sun.com.
- * ┴σ±∩δα≥φ√σ ΓΦ≡≥≤αδⁿφ√σ Java-∞α°Φφ√ ∞εµφε ±Ωα≈α≥ⁿ τΣσ±ⁿ:
- http://www.kaffe.org, http://www.oryxsoft.com/projects/gvm, Φ
- http://www.redhat.com/linux-info/jolt
- * ┴σ±∩δα≥φ√Θ Java AWT ±ε⌠≥ ∞εµφε φαΘ≥Φ φα
- http://www.biss-net.com/biss-awt.html α ≥αΩµσ ∞εµφε Γτ ≥ⁿ Γ±σ
- φσεß⌡εΣΦ∞εσ φα ftp.java-linux.org (linux'εΓ±ΩΦΘ ±αΘ≥).
- * ┴σ±∩δα≥φ√Θ Java-±ε⌠≥ δσµΦ≥ τΣσ±ⁿ:
- http://www.gnu.org/software/java/java.html
-
- ╩±≥α≥Φ, Γ ∞ασ 1998 π. Microsoft ε≥≡Φ÷αδα ±Γε■ ΓΦφ≤, φα±≥αΦΓα φα ≥ε∞, ≈≥ε
- εφα ±ετΣαδα φεΓ√Θ, ≤±εΓσ≡°σφ±≥ΓεΓαφφ√Θ ∩≡εσΩ≥. ▌≥ε φσ ±εε≥Γσ≥±≥Γ≤σ≥
- ΣσΘ±≥ΓΦ≥σδⁿφε±≥Φ. Microsoft ⌠αΩ≥Φ≈σ±ΩΦ εßΓΦφ ■≥ Γ
-
- * ΣσΘ±≥ΓΦ ⌡, φα∩≡αΓδσφφ√⌡ ∩≡ε≥ΦΓ ΩεφΩ≤≡σφ≥εΓ, ∩≡εΦτΓεΣ ∙Φ⌡ ß≡ε≤τσ≡√.
- ╥αΩΦ∞ εß≡ατε∞ τα∙Φ∙ασ≥± ∞εφε∩εδΦ Microsoft φα ≡√φΩσ φα±≥εδⁿφ√⌡
- ε∩σ≡α÷Φεφφ√⌡ ±Φ±≥σ∞.
- * Φ±∩εδⁿτεΓαφΦΦ ∞εφε∩εδΦΦ Σδ φαΓ τ√ΓαφΦ ∩≡εΦτΓεΣΦ≥σδ ∞ PC
- επ≡αφΦ≈ΦΓα■∙Φ⌡ ±επδα°σφΦΘ, ≥≡σß≤■∙Φ⌡ ∩ε±≥αΓΩ≤ Microsoft ß≡ε≤τσ≡α
- Γ∞σ±≥σ ± Windows. ▌≥ε ≥αΩµσ ∩≡σ∩ ≥±≥Γ≤σ≥ ∩≡εΣΓΦµσφΦ■ φα ≡√φεΩ
- ΩεφΩ≤≡σφ≥φε±∩ε±εßφ√⌡ ß≡ε≤τσ≡εΓ.
-
- ╠φεπΦσ δ■ΣΦ φσ ∩εφΦ∞α■≥ ∩εδΦ≥ΦΩΦ, Γτ ≥εΘ φα Γεε≡≤µσφΦσ Ωε∞∩αφΦσΘ Microsoft.
- ╟α≈α±≥≤■ ≤±δεΓΦ , Ωε≥ε≡√σ ±≥αΓΦ≥ Microsoft Γ ±επδα°σφΦ ⌡, ε≈σφⁿ φσ≡ατ≤∞φ√,
- α ∩ε≡εΘ Φ αß±εδ■≥φε φσ∩≡Φσ∞δσ∞√. ┬ε≥ ∩ε≈σ∞≤ MS ±≥αδΩΦΓασ≥± ± ∩≡εßδσ∞εΘ
- φσδσπαδⁿφεπε Φ±∩εδⁿτεΓαφΦ ±ΓεΦ⌡ ∩≡εΣ≤Ω≥εΓ Γ ╤╪└, ╚≥αδΦΦ, ┴≡ατΦδΦΦ Φ
- σΓ≡ε∩σΘ±ΩΦ⌡ ±≥≡αφα⌡.
-
- *(╫α±≥ⁿ 6) ╩αΩ ≡αßε≥α≥ⁿ ±ε ±Γ τφ√∞Φ ±∩Φ±Ωα∞Φ, σ±δΦ Γ Java φσ≥ ≤Ωατα≥σδσΘ?
-
- [*] ╚τ Γ±σ⌡ ταßδ≤µΣσφΦΘ, ±Γ ταφ√⌡ ± Java, ²≥ε - ±α∞εσ φσ∩≡Φ ≥φεσ.
- ╬ßⁿσΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφεσ ∩≡επ≡α∞∞Φ≡εΓαφΦσ ε±φεΓαφε Φ±Ωδ■≈Φ≥σδⁿφε φα
- ≤Ωατα≥σδ ⌡. ╚φα≈σ πεΓε≡ , Σε±≥≤∩ Ω εßⁿσΩ≥α∞ ∩≡εΦ±⌡εΣΦ≥ Γ±σπΣα ≈σ≡στ
- ≤Ωατα≥σδΦ, Φ φΦΩεπΣα - φα∩≡ ∞≤■. Hε ²≥ε ≤Ωατα≥σδΦ φατΓαφ√ "±±√δΩα∞Φ" Φ
- Γ±σπΣα αΓ≥ε∞α≥Φ≈σ±ΩΦ "≡ατ√∞σφεΓ√Γα■≥± ".
-
- ┬ Java φσ≥ α≡Φ⌠∞σ≥ΦΩΦ ≤Ωατα≥σδσΘ Φ ∩≡εΦτΓεδⁿφεπε ∩≡σεß≡ατεΓαφΦ ≥Φ∩εΓ.
- ╟α∩≡σ≥ΦΓ ±ετΣαΓα≥ⁿ Φ ∞σφ ≥ⁿ ≤Ωατα≥σδΦ ∩ε ±Γεσ∞≤ ≤±∞ε≥≡σφΦ■, Java Σσδασ≥
- ≡αßε≥≤ ± ∩α∞ ≥ⁿ■ ßεδσσ φαΣσµφεΘ, φε ∩ετΓεδ σ≥ ±ετΣαΓα≥ⁿ ΣΦφα∞Φ≈σ±ΩΦσ
- ±≥≡≤Ω≥≤≡√. ╩≡ε∞σ ≥επε, Γ Java σ±≥ⁿ NullPointerException (φ≤δσΓεΘ
- ≤Ωατα≥σδⁿ), α φσ NullReferenceException (φ≤δσΓα ±±√δΩα).
-
- ╩δα±± ±Γ ταφεπε ±∩Φ±Ωα ∞επ Γ√πδ Σσ≥ⁿ ∩≡Φ∞σ≡φε ≥αΩ:
-
- public class LinkedList {
-
- public LinkedList head;
-
- public LinkedList next;
-
- public Object data;
-
- public LinkedList advanceToNext(LinkedList current) { ...
-
- }
-
-
-
- ─≡≤πεΘ Γα≡Φαφ≥ - Φ±∩εδⁿτεΓα≥ⁿ ±≥αφΣα≡≥φ√Θ Ωδα±± java.util.Vector, Ωε≥ε≡√Θ
- ∩≡ΦφΦ∞ασ≥ Φ ⌡≡αφΦ≥ εßⁿσΩ≥√ Γ ∩≡εΦτΓεδⁿφ√⌡ ΩεδΦ≈σ±≥Γα⌡ (ΩαΩ ±∩Φ±ΩΦ), Φ
- Γ√Σασ≥ Φ⌡ ∩ε φε∞σ≡≤ (ΩαΩ ∞α±±ΦΓ). ┬σΩ≥ε≡ αΓ≥ε∞α≥Φ≈σ±ΩΦ ∞σφ σ≥ ±ΓεΘ ≡ατ∞σ≡
- ∩≡Φ φσεß⌡εΣΦ∞ε±≥Φ. ─εßαΓδσφΦσ ²δσ∞σφ≥α Γ φα≈αδε ΓσΩ≥ε≡α - ßεδσσ ∞σΣδσφφα
- ε∩σ≡α÷Φ , ≈σ∞ ΣεßαΓδσφΦσ Γ ±∩Φ±εΩ, φε τα≥ε Γ√ßε≡Ωα ²δσ∞σφ≥α ∩≡εΦ±⌡εΣΦ≥
- ß√±≥≡σσ. ╫≥ε Γαµφσσ Σδ Γα°σπε ∩≡ΦδεµσφΦ ?
-
- *(╫α±≥ⁿ 6) ╩αΩ ∩≡σΣα■≥± ∩α≡α∞σ≥≡√ - ∩ε τφα≈σφΦ■ ΦδΦ ∩ε ±±√δΩσ?
-
- [*] ┬±σ ∩α≡α∞σ≥≡√ (ΩαΩ ßατεΓ√σ ≥Φ∩√ ≥αΩ Φ ±±√δΩΦ φα εßⁿσΩ≥√) ∩σ≡σΣα■≥± ∩ε
- τφα≈σφΦ■. Hε φσ Γ±σ ≥αΩ ∩≡ε±≥ε, ≥αΩ ΩαΩ ≡αßε≥α ± εßⁿσΩ≥α∞Φ ∩≡εΦτΓεΣΦ≥± ∩ε
- ±±√δΩσ. ╧ε²≥ε∞≤ ∞εµφε ±Ωατα≥ⁿ, ≈≥ε εßⁿσΩ≥√ ∩σ≡σΣα■≥± ∩ε ±±√δΩσ (α ±±√δΩα
- ∩σ≡σΣασ≥± ∩ε τφα≈σφΦ■). ▌≥ε - ±δσΣ±≥ΓΦσ ≥επε, ≈≥ε ∩σ≡σ∞σφφ√σ ±εΣσ≡µα≥ φσ
- ±α∞Φ εßⁿσΩ≥√, α ±±√δΩΦ φα φΦ⌡ (±∞. ∩≡σΣ√Σ≤∙ΦΘ Γε∩≡ε± ε ±Γ τφ√⌡ ±∩Φ±Ωα⌡).
-
- ╧≡Φ∞σ≈αφΦσ: ╩επΣα ∩α≡α∞σ≥≡ ∩≡Φ∞Φ≥ΦΓφεπε ≥Φ∩α (int, char Φ ≥.∩.) Φτ∞σφ σ≥±
- Γφ≤≥≡Φ ∞σ≥εΣα, Φ±⌡εΣφα ∩σ≡σ∞σφφφα _φσ ∞σφ σ≥± _. ╥σ∞ φσ ∞σφσσ, ∩εδ
- εßⁿσΩ≥εΓ ∞σφ ■≥± ∩≡Φ Φτ∞σφσφΦΦ ∩εδ ∩α≡α∞σ≥≡α Γ Γ√τΓαφε∞ ∞σ≥εΣσ.
-
- ╤∞. Γ FAQ:
- ╩αΩ ≡αßε≥α≥ⁿ ±ε ±Γ τφ√∞Φ ±∩Φ±Ωα∞Φ, σ±δΦ Γ Java φσ≥ ≤Ωατα≥σδσΘ?
- ╤∞. ≥αΩµσ:
- JLS 8.4.1 Formal Parameters
-
- *(╫α±≥ⁿ. 6) ╫≥ε ≥αΩεσ "δΦ≥σ≡αδ√ Ωδα±±α"? (class litrals)
-
- [*] HεΓ√Θ ±Φφ≥αΩ±Φ± Γ JDK 1.1. ▌≥ε Ωεφ±≥αφ≥√ ≥Φ∩α "Class", ±εΣσ≡µα°Φσ
- Φφ⌠ε≡∞α÷Φ■ ε ΩεφΩ≡σ≥φε∞ Ωδα±±σ. ┼±≥ⁿ Σαµσ Ωεφ±≥αφ≥√ Σδ ≥Φ∩α "void" Φ
- ∞α±±ΦΓεΓ, φα∩≡Φ∞σ≡:
-
- Class myCl1 = Character.class;
-
- Class myCl2 = Void.class;
-
- Class myCl3 = Object.class;
-
- Class myCl4 = String[].class;
-
- Class myCl5 = int[][].class;
-
-
-
- ▌≥ε ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ, φα∩≡Φ∞σ≡, ≥αΩ:
-
- Class cl = thing.getClass();
-
- if (cl.equals(myCl1))
-
- System.out.println("It's a Character class");
-
-
-
- ╟α∞σ≥ⁿ≥σ, ≈≥ε δΦ≥σ≡αδ Ωδα±±α
-
- Component.class
-
-
-
- σ±≥ⁿ ²ΩΓΦΓαδσφ≥
-
- Class.forName("java.awt.Component")
-
-
-
- ╧ε±δσΣφσσ ∞εµσ≥ Γ√ß≡α±√Γα≥ⁿ Φ±Ωδ■≈σφΦσ, Γ ε≥δΦ≈Φσ ε≥ ∩σ≡Γεπε. ┼±δΦ Γ ∞ε∞σφ≥
- φα∩Φ±αφΦ Φ∞ ΩεφΩ≡σ≥φεπε Ωδα±±α φσ ΦτΓσ±φε, ≥ε Γ√ φσ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ
- ∩σ≡Γ≤■ ⌠ε≡∞≤.
-
- *(Sect. 6) ╩αΩΦσ ±επδα°σφΦ εß Φ∞σφα⌡ ±≤∙σ±≥Γ≤■≥ Γ Java?
-
- [*] ╤επδα°σφΦ εß Φ∞σφα⌡ ∩≡ε±≥√:
-
- 1. Hσ±εΓ∩αΣσφΦ Φ∞σφ ∩αΩσ≥εΓ πα≡αφ≥Φ≡εΓαφ√ Φ±∩εδⁿτεΓαφΦσ Φ∞σφΦ Σε∞σφα Γ
- εß≡α≥φε∞ ∩ε≡ ΣΩσ: com.javasoft.jag - "com" Φ "edu" εß√≈φε Γ Γσ≡⌡φσ∞
- ≡σπΦ±≥≡σ, φε ≥σ∩σ≡ⁿ ≡σΩε∞φσΣ≤σ≥± Γ φΦµφσ∞.
- 2. ╚∞σφα Ωδα±±εΓ - ε∩Φ±α≥σδⁿφ√σ ±≤∙σ±≥ΓΦ≥σδⁿφ√σ, ± ταπδαΓφεΘ ß≤ΩΓεΘ Γ
- φα≈αδσ ΩαµΣεπε ±δεΓα: PolarCoords (╧εδ ≡φ√σ╩εε≡ΣΦφα≥√). ╫α±≥ε (φε φσ
- Γ±σπΣα) Φφ≥σ≡⌠σΘ±√ φατ√Γα■≥± "≈≥ε-≥ε-able", φα∩≡Φ∞σ≡, "Runnable"
- (τα∩≤±Ωασ∞√Θ), "Sortable" (≤∩ε≡ Σε≈σΓασ∞√Θ). ╧≡σΣ≤∩≡σµΣσφΦσ:
- java.util.Observable φσ Φφ≥σ≡⌠σΘ±, α java.util.Observer - Φφ≥σ≡⌠σΘ±.
- ▌≥Φ ΣΓα Φ∞σφΦ ∩δε⌡ε ∩≡εΣ≤∞αφ√.
- 3. ╧σ≡σ∞σφφ√Θ Φ ∩εδ - ±≤∙σ±≥ΓΦ≥σδⁿφεσ/⌠≡ατα ± ±≤∙σ±≥ΓΦ≥σδⁿφ√∞, ± ∩σ≡ΓεΘ
- ß≤ΩΓεΘ Γ φΦµφσ∞ ≡σπΦ±≥≡σ Φ ∩≡σΓεΘ ß≤ΩΓεΘ ∩εΣ±δεΓα - Γ Γσ≡⌡φσ∞:
- currentLimit (≥σΩ≤∙ΦΘ╧≡σΣσδ).
- 4. ╚∞σφα ∞σ≥εΣεΓ - πδαπεδ/⌠≡ατα ± πδαπεδε∞, ± ∞αδσφⁿΩεΘ ß≤ΩΓ√, ΩαµΣεσ
- ∩εΣ±δεΓε - ± ßεδⁿ°εΘ: calculateCurrentLimit (Γ√≈Φ±δΦ≥ⁿ╥σΩ≤∙ΦΘ╧≡σΣσδ).
- 5. ╚∞σφα Ωεφ±≥αφ≥ (± ∞εΣΦ⌠ΦΩα≥ε≡ε∞ final) ∩Φ°≤≥± ßεδⁿ°Φ∞Φ ß≤ΩΓα∞Φ:
- UPPER_LIMIT
- 6. ╤∞. Γ FAQ:
- ├Σσ Γτ ≥ⁿ ≡≤ΩεΓεΣ±≥Γε ε ±επδα°σφΦ ⌡ εß Φ∞σφα⌡ Γ Java?
- ╤∞. ≥αΩµσ:
- JLS 6.8 Naming conventions
-
- *(╫α±≥ⁿ 6) ╦≤≈°σ δΦ Φ±∩εδⁿτεΓα≥ⁿ Φ∞∩ε≡≥ {package}.{class} Γ∞σ±≥ε
- {package}.*?
- ╧εΓδΦ σ≥ δΦ ²≥ε φα ⌠αΘδ Ωδα±±α, σ±δΦ Φ∞∩ε≡≥Φ≥≡≤■ Γσ±ⁿ ∩αΩσ≥ Γ∞σ±≥ε
- Φ±∩εδⁿτεΓαφΦ ∩εδφεπε Φ∞σφΦ, ≥.σ.
-
- import java.rmi.server.*;
-
- ...
-
- RemoteObject ro;
-
- Γ∞σ±≥ε
-
- java.rmi.server.RemoteObject ro;
-
- [*] ▌≥ε φΦΩαΩ φσ ε≥≡ατΦ≥± φα ⌠αΘδσ Ωδα±±α ΦδΦ ±Ωε≡ε±≥Φ Γ√∩εδφσφΦ . ╚∞∩ε≡≥
- - ²≥ε ∩≡ε±≥ε ±εΩ≡α∙σφΦσ Σδ Σδ ∩εδφ√⌡ Φ∞σφ Ωδα±±εΓ ∩αΩσ≥σ (ΩαΩ Γ ∩≡Φ∞σ≡σ
- Γ√°σ). ╚∞∩ε≡≥Φ≡εΓαφΦσ δΦ°φσπε Ωδα±±α φσ ∩≡ΦΓεΣΦ≥ Ω σπε ταπ≡≤τΩσ ∩≡Φ
- Γ√∩εδφσφΦΦ. Hσ≥ φΦΩαΩΦ⌡ ε≥≡Φ÷α≥σδⁿφ√⌡ ²⌠⌠σΩ≥εΓ ∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ⌠ε≡∞√ "*".
- ╘αΘδ Ωδα±±α Γ±σπΣα ±εΣσ≡µΦ≥ Φ∞σφα ≥εδⁿΩε Φ±∩εδⁿτ≤σ∞√⌡ ∩αΩσ≥εΓ, Φ ταπ≡≤τ≈ΦΩ
- ß≤Σσ≥ Φ±Ωα≥ⁿ ≥σ Ωδα±±√, Ωε≥ε≡√σ φσεß⌡εΣΦ∞√.
-
- ┬ε Γ≡σ∞ Ωε∞∩Φδ ÷ΦΦ ΓΦΣ Φ∞∩ε≡≥α ∞εµσ≥ ΩαΩ Φτ∞σφΦ≥ⁿ, ≥αΩ Φ φσ Φτ∞σφΦ≥ⁿ Γ≡σ∞
- Ωε∞∩Φδ ÷ΦΦ. ╥αΩεσ ≡ατδΦ≈Φσ, ±Ωε≡σσ Γ±σπε, ß≤Σσ≥ φσ τα∞σ≥φε, Φ ²≥ε φσ ∞εµσ≥
- ±δ≤µΦ≥ⁿ ΣεΓεΣε∞ Σδ Γ√ßε≡α ΓΦΣα Φ∞∩ε≡≥Φ≡εΓαφΦ .
-
- ╥σ∞ φσ ∞σφσσ, ±≤∙σ±≥Γ≤■≥ ±≥ΦδσΓ√σ ∩≡Φ≈Φφ√. HσΩε≥ε≡√σ ≤≥Γσ≡µΣα■≥, ≈≥ε
- Φ∞∩ε≡≥Φ≡εΓαφΦσ Ωδα±±εΓ Φδ≤≈°ασ≥ "≈Φ≥αßσδⁿφε±≥ⁿ" ∩≡επεα∞∞√. ┬ ∩≡ε≡α∞∞√⌡ ±
- ßεδⁿ°Φ∞ ΩεδΦ≈σ±≥Γε∞ "*" ΦφεπΣα ≥≡≤Σφε ∩εφ ≥ⁿ, ΩαΩεΘ Ωδα±± ε≥Ω≤Σα
- Φ∞∩ε≡≥Φ≡≤σ≥± . ┼±δΦ Γ√ ±φε εßⁿ Γδ σ≥σ Φ∞∩ε≡≥ Σδ ΩαµΣεπε Ωδα±±α Γ φα≈αδσ
- ∩≡επ≡α∞∞√, Γ√ ΣεΩ≤∞σφ≥Φ≡≤σ≥σ, πΣσ ±εΣσ≡µ≥± ΩαµΣ√Θ Φ±∩εδⁿτ≤σ∞√Θ Ωδα±±.
- ╥αΩΦσ δ■ΣΦ ∩≡σΣδαπα■≥ Φ±∩εδⁿτεΓα≥ⁿ
-
- import java.rmi.server.RemoteObject;
-
-
-
- Γ∞σ±≥ε
-
- import java.rmi.server.*;
-
-
-
- ─≡≤πΦσ µσ ≤≥Γσ≡µΣα■≥, ≈≥ε σ∙σ ∩εφ ≥φσΘ Φ±∩εδⁿτεΓα≥ⁿ ∩εδφ√σ Φ∞σφα ∩αΩσ≥εΓ Φ
- Ωδα±±εΓ ΓστΣσ, πΣσ Γ√ Φ±∩εδⁿτ≤σ≥σ Ωδα±±√ Φτ Σ≡≤πΦ⌡ ∩αΩσ≥εΓ.
- ▌≥Φ δ■ΣΦ ∩≡σΣδαπα■≥ ∩Φ±α≥ⁿ
-
- java.rmi.server.RemoteObject ro;
-
-
-
- ▌≥ε ±≥αφεΓΦ≥± φσ∞φεπε ΣδΦφσσ, ΩεπΣα Γ√ ΦφΦ÷ΦαδΦτΦ≡≤σ≥σ ∩≡σ∞σφφ≤■:
-
- java.rmi.server.RemoteObject ro
-
- = new java.rmi.server.RemoteObject();
-
-
-
- ┬√ Γ±σπΣα ∞εµσ≥σ Γ√ß≡α≥ⁿ, φαß≡α≥ⁿ δΦ Γα∞ ∩εδφεσ Φ∞ ΦδΦ Φ±∩εδⁿτεΓα≥ⁿ
- Φ∞∩ε≡≥.
-
- ┼±≥ⁿ σ∙σ εΣφα ∩≡Φ≈Φφα φσ Φ±∩εδⁿτεΓα≥ⁿ "*". ┼±δΦ Γ√ Φ∞∩ε≡≥Φ≡≤σ≥σ ΣΓα ∩αΩσ≥α,
- Φ∞σ■∙Φσ Ωδα±±√ ± εΣΦφαΩεΓ√∞Φ Φ∞σφα∞Φ Φ Γ√ ⌡ε≥Φ≥σ Φ±∩εδⁿτεΓα≥ⁿ ≥εδⁿΩεεΣΦφ Φτ
- φΦ⌡. Hα∩≡Φ∞σ≡,
-
- import com.sun.*;
-
- import com.ms.*;
-
-
-
- πΣσ ±εΣσ≡µα≥± ΣΓα Ωδα±±α ± Φ∞σφσ∞ Modem Γ εßσΦ⌡ ∩αΩσ≥α⌡. ┼±δΦ Φ±∩εδⁿτ≤σ≥±
- "*"-⌠ε≡∞α, ≥ε εßα Ωδα±±α ß≤Σ≤≥ Φ∞∩ε≡≥Φ≡εΓαφ√, Φ Γ√ εß ταφ√ ∩Φ±α≥ⁿ ∩εδφ√σ
- Φ∞σφα Ωδα±±εΓ ΓστΣσ, πΣσ εφΦ Φ±∩εδⁿτεΓαφ√, ≈≥εß√ Ωε∞∩Φδ ≥ε≡ ∩εφ δ, ≈≥ε Γ√
- Φ∞σσ≥σ Γ ΓΦΣ≤. ┬ Java 1.2 ß√δ ∩≡σΣ±≥αΓδσφ Ωδα±± java.util.List. ▌≥ε≥ Ωδα±±
- Φ∞σσ≥ ≥εµσ Φ∞ , ≈≥ε Φ java.util.List. ┼±δΦ Γ√ Φ±∩εδⁿτ≤σ≥σ Γ ∩≡επ≡α∞∞σ
- "import java.awt.*; import java.util.*;", Γα°α ∩≡επ≡α∞∞α, Γετ∞εµφε, φσ
- ß≤Σσ≥ Ωε∞∩ΦδΦ≡εΓα≥ⁿ± - Γ√ ∩εδ≤≈Φ≥σ ±εεß∙σφΦσ ε φσεΣφετφα≈φ√⌡ Φ∞σφα⌡. ┼±δΦ
- Γ√ Φ∞∩ε≡≥Φ≡≤σ≥σ Γ±σ ⌠αΘδ√ ßστ ≡ατßε≡α, ≥ε Γ ±δ≤≈ασ Φτ∞σφσφΦ API ≤ Γα±
- ∞επ≤≥ ∩ε ΓΦ≥ⁿ± ∩≡εßδσ∞√.
-
- ┬ Java 1.0, σ±δΦ Φ∞∩ε≡≥Φ≡≤σ≥± Ωδα±±, Ωε≥ε≡√Θ Φ∞σσ≥ ≥ε µσ Φ∞ , ≈≥ε Φ Ωδα±±
- Γ ≥σΩ±≥σ, ≥ε Γ√ ∩εδ≤≈Φ≥σ ±εεß∙σφΦσ ε Ωεφ⌠δΦΩ≥σ Φ∞σφ. ┬ Java 1.1 ß≤Σσ≥
- Φ∩εδⁿτεΓαφ δεΩαδⁿφ√Θ Ωδα±±, σ±δΦ φσ ≤Ωαταφε Φ∞ ∩αΩσ≥α. ─δ Φ±∩εδⁿτεΓαφΦ
- "Φ∞∩ε≡≥φεπε" Ωδα±±α Φ±∩εδⁿτ≤Θ≥σ ∩εδφεσ Φ∞ .
-
- ╤α∞εσ δ≤≈°σσ - ∩Φ±α≥ⁿ ∩≡επ≡α∞∞≤ ≥αΩ, ≈≥εß√ εφα ß√δα ΩαΩ ∞εµφε ßεδσσ
- ≈Φ≥αßσδⁿφα. ┼δΦ Φ±∩εδⁿτ≤σ≥± π≡≤∩∩α °Φ≡εΩε ΦτΓσ±≥φ√⌡ Ωδα±±εΓ, ΩαΩ java.awt,
- ≥ε φσ≥ ε±εß√⌡ ∩≡Φ≈Φφ φσ Φ±∩εδⁿτεΓα≥ⁿ "import java.awt.*;"
-
- *(╫α±≥ⁿ 6) ╫≥ε ±δ≤≈Φδε±ⁿ ± "private protected"?
-
- [*] ┬∩σ≡Γ√σ ²≥ε ∩ε ΓΦδε±ⁿ Γ JDK 1.0 FCS (σπε φσ ß√δε Γ ßσ≥α⌡). ╟α≥σ∞ ß√δε
- ≤ß≡αφε Γ JDK 1.0.1. ▌≥ε ß√δ π≡ τφ√Θ ⌡αΩ ±Φφ≥αΩ±Φ±α, Φ εφ φσ ±εε≥Γσ≥±≥ΓεΓαδ
- δεπΦ≈σ±ΩΦ Σ≡≤πΦ∞ ∞εΣΦ⌠ΦΩα≥ε≡α∞ Σε±≥≤∩α. ╬φ φΦΩεπΣα φσ ≡αßε≥αδ ∩≡αΓΦδⁿφε: Γ
- Γσ≡±Φ ⌡ JDK, Σε ≥επε ΩαΩ εφ ß√δ ≤ß≡αφ, Γ√τεΓ√ private protected ∞σ≥εΣεΓ φσ
- ±Γ τ√ΓαδΦ±ⁿ ΣΦφα∞Φ≈σ±ΩΦ, ΩαΩ ²≥ε Σεδµφε ß√δε ß√ ß√≥ⁿ. ╬φ ΣεßαΓδ δ ε≈σφⁿ
- φσ∞φεπε Γετ∞εµφε±≥σΘ Ω τ√Ω≤. ╚±∩εδⁿτεΓα≥ⁿ ±≤∙σ±≥Γ≤■∙Φσ Ωδ■≈σΓ√σ ±δεΓα ±
- Σ≡≤πΦ∞ τφα≈σφΦσ∞- Γ±σπΣα ∩δε⌡α ΦΣσ . ╚±∩εδⁿτεΓα≥ⁿ ΣΓα Φτ φΦ⌡ Γ∞σ±≥σ - σ∙σ
- ⌡≤µσ.
-
- ╧ε ε⌠Φ÷ΦαδⁿφεΘ Γσ≡±ΦΦ ²≥ε ßαπ. Hε ²≥ε φσ∩εδφα Φ±≥ε≡Φ . Private protected
- ß√δ ΣεßαΓδσφ ∩ε≥ε∞≤, ≈≥ε ≤ φσπε ß√δΦ ±Φδⁿφ√σ τα∙Φ≥φΦΩΦ. ╬φ ß√δ ≤ß≡αφ, ΩεπΣα
- ß√δ ε±≤µΣσφ Γ±σεß∙Φ∞ ∞φσφΦσ∞.
-
- Hα±δσΣεΓαφΦσ (inheritance)
-
- *╩αΩεΓε ≡ατδΦ≈Φσ ∞σµΣ≤ φα±δσΣεΓαφΦσ∞ Φ αß±≥≡αΩ≥φ√∞ Ωδα±±ε∞?
-
- [*] HσΩε≥ε≡εσ ±σ∞αφ≥Φ≈σ±Ωεσ ε≥δΦ≈Φσ: ╠εΣσδⁿ αß±≥≡αΩ≥φ√⌡ ±≤∩σ≡Ωδα±±εΓ
- ∞εΣσδΦ≡≤σ≥ ±Γ τΦ "σ±≥ⁿ", ≥επΣα ΩαΩ Φφ≥σ≡⌠σΘ± ∞εΣσδΦ≡≤σ≥ ±Γ τⁿ "Φ∞σσ≥".
- ╧≡αΓΦδε ≥αΩεΓε - σ±δΦ ²≥ε ∩εΣ≥Φ∩, φα±δσΣ≤Θ≥σ, Φφα≈σ - ≡σαδΦτ≤Θ≥σ.
-
- Hε, Γ ε≥±≤≥±≥ΓΦσ ≡σαδⁿφ√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ Σδ Γ√ΣσδσφΦ εß·σΩ≥εΓ Φτ Φ⌡
- ±ΓεΘ±≥Γ Φ ∩≡σΣΩεΓ, ²≥ε ±≥αφεΓΦ≥± α≡π≤∞σφ≥ε∞, ΣσΘ±≥Γ≤■∙Φ∞ Φ Γ ≥≤ Φ Γ Σ≡≤π≤■
- ±≥ε≡εφ≤. ┬ ²≥ε∞ ±δ≤≈ασ ┬√ Σεδµφ√ ∩ε±∞ε≥≡σ≥ⁿ φα ∩≡αΩ≥Φ≈σ±Ωεσ ≡ατδΦ≈Φσ Γ Java
- (Γ ±≡αΓφσφΦΦ ± C++) .
-
- ╬±φεΓφ√σ ≡ατδΦ≈Φ ∞σµΣ≤ Φφ≥σ≡⌠σΘ±α∞Φ Φ αß±≥≡αΩ≥φ√∞Φ Ωδα±±α∞Φ ∩≡εΦτ≡α±≥α■≥
- Φτ ≥≡σ⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ:
-
- 1. ╬ßα ε∩≡σΣσδ ■≥ ε∩Φ±αφΦ ∞σ≥εΣεΓ, Ωε≥ε≡√σ ß≤Σσ≥ Φ∞σ≥ⁿ ∩≡εΦτΓεΣφ√Θ
- Ωδα±±.
- 2. └ß±≥≡αΩ≥φ√Θ Ωδα±± ∞εµσ≥ ≥αΩµσ ε∩≡σΣσδ ≥ⁿ ≈α±≥Φ≈φ≤■ ≡σαδΦτα÷Φ■.
- 3. ╩δα±± ∞εµσ≥ ≡σαδΦτεΓα≥ⁿ ∞φεπε Φφ≥σ≡⌠σΘ±εΓ, φε φα±δσΣ≤σ≥± ≥εδⁿΩε ε≥
- εΣφεπε Ωδα±±α.
-
- ┴εδσσ Σσ≥αδⁿφε:
-
- 1. ╬∩Φ±αφΦ ∞σ≥εΣεΓ ╚ Φφ≥σ≡⌠σΘ±√ Φ αß±≥≡αΩ≥φ√σ Ωδα±±√ ∩ετΓεδ ■≥
- εß≡α∙α≥ⁿ± ± Ωδα±±ε∞ ∩≡εΦτΓεΣφεπε ≥Φ∩α ΩαΩ ± Ωδα±±ε∞ ≥Φ∩α, ε≥ Ωε≥ε≡επε
- εφ ≤φα±δσΣεΓαφ. ╬ßα ε∩≡σΣσδ ■≥ φαßε≡ Σε±≥≤∩φ√⌡ ∞σ≥εΣεΓ ±∩ε±εßε∞,
- Ωε≥ε≡√Θ ∞εµσ≥ ß√≥ⁿ ≤±Φδσφ ∞σ⌡αφΦτ∞ε∞ ∩≡εΓσ≡ΩΦ ≥Φ∩α. ▌≥ε εß√≈φε
- Φ±∩εδⁿτ≤σ≥± Σδ ≥επε, ≈≥εß√ ∩ετΓεδΦ≥ⁿ ≡ατδΦ≈φ√∞ (∩≡εΦτΓεΣφ√∞) ≥Φ∩α∞
- Φ∞σ≥ⁿ εΣΦφαΩεΓεΓσ ∩εΓσΣσφΦσ (≥αΩ ΩαΩ εφΦ Γ±σ φα±δσΣφΦΩΦ, ≥.σ. εφΦ Γ±σ
- Φ∞σ■≥ ε∩≡σΣσδσφφ√σ ∞σ≥εΣ√). Hα∩≡Φ∞σ≡, Γ±σ ≥Φ∩α java,* ∞επ≤≥ ß√≥ⁿ
- ≡α±∩σ≈α≥αφ√ ΩαΩ String, ≥αΩ ΩαΩ Object, ±≤∩σ≡Ωδα±± Γ±σ⌡ ≥Φ∩εΓ java.*,
- Φ∞σσ≥ ∞σ≥εΣ toString(). └φαδεπΦ≈φε, Γ±σ ≥Φ∩√, Ωε≥ε≡√σ ≡σαδΦτ≤■≥
- Φφ≥σ≡⌠σΘ± Observable Σε±≥≤∩φ√ ΩαΩ Observer Σδ ±ΦπφαδΦτα÷ΦΦ, ≈≥ε
- ±εß√≥Φσ ∩≡εΦτε°δε. ▌≥ε ∩ετΓεδ σ≥ αδπε≡Φ≥∞≤ ΦδΦ ±σ≡ΓΦ±≤ ≡αßε≥α≥ⁿ ±
- ≡ατδΦ≈φ√∞Φ (∩≡εΦτΓεΣφ√∞Φ) ≥Φ∩α∞Φ, ≥αΩ ΩαΩ ß≤Σ≥ε εφΦ εΣφεπε (ε≥
- Ωε≥ε≡επε ≤φα±δσΣεΓαφ√) ≥Φ∩α.
- ▌≥ε≥ ∞σ⌡αφΦτ∞ ∩εΣΣσ≡µΦΓασ≥ φσ ≥εδⁿΩε ∩εδΦ∞ε≡⌠Φτ∞ (εΣΦφ εß·σΩ≥
- εß≡αßα≥√Γασ≥± ΩαΩ Σ≡≤πεΘ), φε Φ ΣΦ⌠⌠σ≡σφ÷Φα÷Φ■. ┬ δ■ßε∞ ±δ≤≈ασ ≥Φ∩√
- (∩≡εΦτΓεΣφ√σ) ∞επ≤≥ ≡σαδΦτεΓ√Γα≥ⁿ ∞σ≥εΣ ±∩ε±εßε∞, ±εε≥Γσ≥±≥Γ≤■∙Φ∞
- ²≥ε∞≤ ≥Φ∩≤. ╬ΣφαΩε, ┬√ φσ εß ταφ√ ∩σ≡σΩ≡√Γα≥ⁿ ≤φα±δσΣεΓαφφ≤■
- ⌠≤φΩ÷Φεφαδⁿφε±≥ⁿ, φε ┬√ Σεδµφ√ ≡σαδΦτεΓα≥ⁿ ∞σ≥εΣ√ Φφ≥σ≡⌠σΘ±α, ≥αΩ ≈≥ε
- σ±δΦ ┬√ εµΦΣασ≥σ τφα≈Φ≥σδⁿφ√σ ≡ατδΦ≈Φ , ≥ε ∞εµσ≥ ß√≥ⁿ ε∩≡αΓΣαφφ√∞
- Φ±∩εδⁿτεΓαφΦσ Φφ≥σ≡⌠σΘ±α.
- HαΩεφσ÷, ²≥ε≥ ∞σ⌡αφΦτ∞ ∩εΣΣσ≡µΦΓασ≥ ±δαß√Θ Γα≡Φαφ≥ Ωεφ≥≡εδ Σε±≥≤∩α.
- ╥εδⁿΩε ≤φα±δσΣεΓαφφ√σ ∞σ≥εΣ√ Σε±≥≤∩φ√ Γ√τ√Γα■∙σ∞≤, Ωε≥ε≡√Θ Φ∞σσ≥
- Σε±≥≤∩ Ω ε∩Φ±αφΦ■ ±≤∩σ≡Ωδα±±α ΦδΦ Φφ≥σ≡⌠σΘ±α. ▌≥ε ±δαßε±≥ⁿ,≥αΩ ΩαΩ
- Γετ∞εµφε ≤Ωατα≥ⁿ ΩεφΩ≡σ≥φ√Θ ≥Φ∩, σ±δΦ εφ ΦτΓσ±≥σφ. ┬ δ■ßε∞ ±δ≤≈ασ, ²≥ε
- ≤∞σφⁿ°ασ≥ ±δεµφε±≥ⁿ.
- 2. Hα±δσΣεΓαφΦσ ≡σαδΦτα÷ΦΦ Hα±δσΣεΓαφΦσ ≡σαδΦτα÷ΦΦ ∩εδστφε, ΩεπΣα ΩεΣ
- Σεδµσφ ß√≥ⁿ ≡ατΣσδ σ∞√∞. ╥αΩεσ ±δ≤≈ασ≥± ΩεπΣα ∩≡εΦτΓεΣφ√σ ≥Φ∩√
- ≡ατδΦ≈α■≥± Γ ⌠≤φΩ÷Φεφαδⁿφε±≥Φ ε≈σφⁿ φσ∞φεπε, ΦδΦ ΩεπΣα Ωε∞∩δσΩ±φ√Θ
- φαßε≡ Φφ≥σ≡⌠σΘ±εΓ ∞σ≥εΣεΓ ∞εµσ≥ ß√≥ⁿ ≡σαδΦτεΓαφ ≈σ≡στ ΓταΦ∞φ√σ ±±√δΩΦ
- ± ε≥φε±Φ≥σδⁿφε φσßεδⁿ°Φ∞ ΩεδΦ≈σ±≥Γε∞ ∞σ≥εΣεΓ, ≡σαδΦτεΓαφφ√⌡ Γ
- ∩≡εΦτΓεΣφ√⌡ ≥Φ∩α⌡. ┬√ ∞εµσ≥σ ≥αΩµσ ∩εΓ≥ε≡φε Φ±∩εδⁿτεΓα≥ⁿ ΩεΣ, ±ΣσδαΓ
- ┬α° Ωδα±± ±εΣσ≡µα∙Φ∞ ΦδΦ Φ±∩εδⁿτ≤■∙Φ∞ εß·σΩ≥ Σ≡≤πεπε ≥Φ∩α, Ωε≥ε≡√Θ
- ≡σαδΦτ≤σ≥ ²≥ε≥ ΩεΣ, φε ²≥ε φσ Σασ≥ Γετ∞εµφε±≥Φ Γ√τ√Γα■∙Φ∞ Φ±∩εδⁿτεΓα≥ⁿ
- Γα± ε±εß√∞ εß≡ατε∞. ╧εδ≤≈σφΦσ Φ ⌠≤φΩ÷Φεφαδⁿφε±≥Φ Φ Γετ∞εµφε±≥Φ ß√≥ⁿ
- Φ±∩εδⁿτεΓαφφ√∞, ΩαΩ ±≤∩σ≡Ωδα±± - ±≤∙φε±≥ⁿ ε≥φε°σφΦΘ ≥Φ∩/∩εΣ≥Φ∩.
- 3. ╧≡αΓΦδε εΣΦφε≈φεπε φα±δσΣεΓαφΦ Γ Java Java ε≥δΦ≈ασ≥± ε≥ C++ ≥σ∞, ≈≥ε
- ∩ετΓεδ σ≥ ≥εδⁿΩε εΣΦφε≈φεσ φα±δσΣεΓαφΦσ. ▌≥ε ∩≡ΦΓεΣΦ≥ Ω ≥≡≤Σφε∞≤
- Γ√ßε≡≤, σ±δΦ ┬√ ⌡ε≥Φ≥σ ±εΓ∞σ±≥Φ≥ⁿ ⌠≤φΩ÷Φεφαδⁿφε±≥ⁿ φα±δσΣεΓαφΦ Φ
- ∩εδΦ∞ε≡⌠Φτ∞α Φτ ßεδσσ, ≈σ∞ εΣφεπε Φ±≥ε≈φΦΩα. ╬ΣφαΩε ²≥ε ≤±ΦδΦΓασ≥
- ∩≡σΣ±≥αΓδσφΦσ ε φα±δσΣεΓαφΦσσ ΩαΩ ε ±Γ τΦ ∩εΣ≥Φ∩εΓ, Φ ∩≡σΣ±≥αΓδσφΦ■
- ²≥επε ≥Φ∩α ±Γ τΦ Γ ΓΦΣσ Σσ≡σΓα, α φσ ±σ≥Φ.
-
- ┼∙σ ≡ατδΦ≈Φ :
-
- 1. ╨σαδΦτα÷ΦΦ αß±≥≡αΩ≥φ√⌡ Ωδα±±εΓ ∞επ≤≥ ΓΩδ■≈α≥ⁿ ∩εδ
- 2. ╚φ≥σ≡⌠σΘ±√ ∞επ≤≥ ΓΩδ■≈α≥ⁿ final ≈δσφ√ Σαφφ√⌡
- 3. ┬√τεΓ ∞σ≥εΣα ≈σ≡στ Φφ≥σ≡⌠σΘ± ∩≡σφσß≡σµΦ∞ε ∞σΣδσφφσσ. ╚∞σσ≥± Σαµσ
- ∞σφⁿ°α ∩ε≥σ≡ ∩≡Φ Γ√τεΓσ ±≤∩σ≡Ωδα±±α ≈σ≡στ ±±√δΩ≤ φα ∩εΣΩδα±± ( ≥.σ.
- ΩεπΣα ∩εΣΩδα±± φσ ∩σ≡σΩ≡√Γασ≥ ∞σ≥εΣ). ╧ε≈≥Φ φσ≥ ∩ε≥σ≡ⁿ ∩≡Φ Γ√τεΓσ
- ∞σ≥εΣα ∩εΣΩδα±±α ∩≡Φ ±±√δΩσ φα ±≤∩σ≡Ωδα±± (┬±σ ∩≡Φ ±≡αΓφσφΦΦ ± ∩≡ ∞√∞
- Γ√τεΓε∞, ≥.σ. Γ√τεΓε∞ ∞σ≥εΣα ∩≡εΦτΓεΣφεπε Ωδα±±α ≈σ≡στ ±±√δΩ≤ φα
- ∩≡εΦτΓεΣφ√Θ Ωδα±±)
-
- *(╫α±≥ⁿ 6) ╩αΩ ±≥α≥Φ≈σ±ΩΦσ ∞σ≥εΣ√ ΓταΦ∞εΣσΘ±≥Γ≤■≥ ± φα±δσΣεΓαφΦσ∞?
-
- [*] ╤≥α≥Φ≈σ±ΩΦσ (Σδ Ωδα±±α, α φσ Σδ εß·σΩ≥α) ∞σ≥εΣ√ φσ ≤≈α±≥Γ≤■≥ Γ
- ∩σ≡σΩ≡√≥ΦΦ (Γ√ßε≡σ φ≤µφεπε ∞σ≥εΣα Γε Γ≡σ∞ Γ√∩εδφσφΦ φα ε±φεΓαφΦΦ Ωδα±±α
- εß·σΩ≥α) ┬ετ∞εµφε δ≤≈°ΦΘ Φ φαΦßεδσσ ∩≡ε±≥εΘ ∩≤≥ⁿ Σ≤∞α≥ⁿ εß ²≥ε∞ ( Φ ∩Φ±α≥ⁿ
- ┬α° ΩεΣ ) - ∩Φ±α≥ⁿ ΩαµΣ√Θ Γ√τεΓ ±≥α≥Φ≈σ±Ωεπε ∞σ≥εΣα, Φ±∩εδⁿτ≤ ∩εδφεσ Φ∞
- Ωδα±±α:
-
- class A {
- public static method1() {
- A.method2();
- }
- public static method2() {
- }
- }
-
- class B extends A {
- public static method3() {
- A.method1();
- }
- public static method2() {
- }
- }
-
-
- ╤σΘ≈α± ∩≡σΩ≡α±φε ΓΦΣφε, ≈≥ε ±≥α≥Φ≈σ±ΩΦΘ method2() Γ√τ√Γασ≥ A.method2(), α
- φσ B.method2(). A.method2() ß≤Σσ≥ Γ√τΓαφ φσταΓΦ±Φ∞ε ε≥ ≥επε, Φ±∩εδⁿτ≤σ≥σ ┬√
- ∩εδφεσ Φ∞ Ωδα±±α ΦδΦ φσ≥, φε Φ±∩εδⁿτεΓαφΦσ "A." Σσδασ≥ ²≥ε ε≈σΓΦΣφ√∞ Σδ
- Γ±σ⌡.
-
- *(╫α±≥ⁿ 6) ╧ε≈σ∞≤ Ωδα±± String final? ▀ ≈α±≥ε ⌡ε≈≤ ∩σ≡σΩ≡√≥ⁿ σπε.
-
- [*] ╘Φφαδⁿφε±≥ⁿ πα≡αφ≥Φ≡≤σ≥, ≈≥ε ²Ωτσ∞∩δ ≡√ String ≥εδⁿΩε Σδ ≈≥σφΦ (
- Ωδα±± String ≡σαδΦτ≤σ≥ εß·σΩ≥√ ≥εδⁿΩε Σδ ≈≥σφΦ , φε σ±δΦ εφ φσ final, ≥ε
- Γετ∞εµφε φα∩Φ±α≥ⁿ ∩εΣΩδα±± string, Ωε≥ε≡√Θ ∩ετΓεδΦ≥ ß√≥ⁿ ²Ωτσ∞∩δ ≡α∞
- Φτ∞σφ σ∞√∞Φ.) Strings Σεδµσφ ß√≥ⁿ ≥εδⁿΩε Σδ ≈≥σφΦ Σδ ßστε∩α±φε±≥Φ Φ
- ²⌠⌠σΩ≥ΦΓφε±≥Φ.
-
- ╫≥ε Ωα±ασ≥± ²⌠⌠σΩ≥ΦΓφε±≥Φ, String ε≈σφⁿ ≈α±≥ε Φ±∩εδⁿτ≤σ≥± , Σαµσ φσ Γφε
- Ωε∞∩Φδ ≥ε≡ε∞ Java. ┼⌠⌠σΩ≥ΦΓφε±≥ⁿ, Φ∞σ■∙α ± Γ Ωδα±±σ String Σασ≥ ßεδⁿ°Φσ
- ∩pσΦ∞≤∙σ±≥Γα. ╥αΩ ΩαΩ φΦΩ≥ε φσ ∞εµσ≥ Φτ∞σφΦ≥ⁿ String, ≥ε ┬√ φσ Σεδµφ√
- ßσ±∩εΩεΦ≥ⁿ± ε ≥ε∞, Ω≥ε σ∙σ ±±√δασ≥± φα ┬α° String. ╧≡ε∙σ ε∩≥Φ∞ΦτΦ≡εΓα≥ⁿ
- Σε±≥≤∩ Ω εß·σΩ≥≤, ∩≡ε Ωε≥ε≡√Θ ΦτΓσ±≥φε, ≈≥ε εφ φσ ∞σφ σ≥± .
-
- ßστε∩α±φε±≥ⁿ- σ∙σ ßεδσσ Γαµφα ∩≡Φ≈Φφα. ╧≡σµΣσ ≈σ∞ String ß√δ Φτ∞σφσφ φα
- final (∩εΩα Java 1.0 ß√δα σ∙σ ßσ≥εΘ) ß√δε ≤±δεΓΦσ, Ωε≥ε≡εσ ∞επδε ß√≥ⁿ
- Φ±∩εδⁿτεΓαφε Σδ ∩≡σεΣεδσφΦ επ≡αφΦ≈σφΦΘ ±σΩⁿ■≡Φ≥Φ. ▌≥ε ∞επδε ß√≥ⁿ ±Σσδαφε
- Φτ∞σφσφΦσ∞ ∩≤≥Φ Ω ⌠αΘδ≤ Γ εΣφε∞ ≥≡σΣσ, ∩±εδσ ≥επε ΩαΩ Σ≡≤πεΘ ≥≡σΣ ∩≡εΓσ≡Φδ,
- ≈≥ε Σε±≥≤∩ Ω φσ∞≤ ≡ατ≡σ°σφ Φ ±εßΦ≡αδ± ε≥Ω≡√≥ⁿ σπε.
-
- ╤≤∙σ±≥Γ≤■≥ Σ≡≤πΦσ ∩≤≥Φ Σδ ≡σ°σφΦ ²≥εΘ ∩≡εßδσ∞√, φε ≡ατ≡αßε≥≈ΦΩΦ ∩≡σΣ∩ε≈δΦ
- ±Σσδα≥ⁿ String final, ε±εßσφφε ≥αΩ ΩαΩ Φ∞σσ≥± αδⁿ≥σ≡φα≥ΦΓφ√Θ Ωδα±±
- StringBuffer .
-
- *(╫α±≥ⁿ 6) ┼±δΦ ≡α±°Φ≡ ■/φα±δσΣ≤■ Ωδα±±, φα±δσΣ≤■≥± δΦ Ωεφ±≥≡≤Ω≥ε≡√?
-
- [*] "─σΩδα≡α÷ΦΦ Ωεφ±≥≡≤Ω≥ε≡εΓ φσ Γδ ■≥± ≈δσφα∞Φ. ╬φΦ φΦΩεπΣα φσ
- φα±δσΣ■≥± Φ ∩ε²≥ε∞≤ φσ Γδ ■≥± ∩≡σΣ∞σ≥ε∞ ±Ω≡√≥Φ ΦδΦ ∩σ≡σΩ≡√≥Φ ."
- ╩εφ±≥≡≤Ω≥ε≡ ∩ε ≤∞εδ≈αφΦ■ φσ φα±δσΣ≤σ≥± , φε εßσ±∩σ≈ΦΓασ≥± . (╤∞. JLS 8.6.7
- Default Constructors)
-
- ┼±δΦ ┬√ φσ Σασ≥σ ┬α°σ∞≤ Ωδα±±≤ Ωεφ±≥≡≤Ω≥ε≡√, ≥ε εßσ±∩σ≈ΦΓασ≥± Ωεφ±≥≡≤Ω≥ε≡
- ∩ε ≤∞εδ≈αφΦ■ ßστ α≡π≤∞σφ≥εΓ, Ωε≥ε≡√Θ Γ√τ√Γασ≥ Ωεφ±≥≡≤Ω≥ε≡ ±≤∩σ≡Ωδα±±α. ┼±δΦ
- ±≤∩σ≡Ωδα±± φσ Φ∞σσ≥ Ωεφ±≥≡≤Ω≥ε≡α ßστ α≡π≤∞σφ≥εΓ, ┬√ Σεδµφ√ ±ετΣα≥ⁿ
- Ωεφ±≥≡≤Ω≥ε≡ Φ Γ√τΓα≥ⁿ ±εε≥Γσ≥±≥Γ≤■∙ΦΘ Ωεφ±≥≡≤Ω≥ε≡ ±≤∩σ≡Ωδα±±α.
-
- ╥αΩ µσ Γ FAQ:
- ╤εεß∙σφΦ Ωε∞∩Φδ ≥ε≡α No constructor {superclass}()
-
- ─≡≤πΦσ ±αΘ≥√:
- JLS 8.6.7 ╩εφ±≥p≤Ω≥εp√ ∩ε ≤∞εδ≈αφΦ■
-
- *(╫α±≥ⁿ 6) ╩αΩ ßστε∩α±φε ±ε⌡≡αφΦ≥ⁿ ε±εß√σ ≥Φ∩√ Γ εß√≈φ√⌡ Ωεφ≥σΘφσ≡α⌡?
- ╫α±≥ε ß√Γασ≥ φσεß⌡εΣΦ∞ε ±ε⌡≡αφΦ≥ⁿ ε±εß√σ ≥Φ∩√ εß·σΩ≥εΓ, φε φσ ⌡ε≈≤
- ≡ατßΦΓα≥ⁿ ε±φεΓφ√σ Ωδα±±√ ∩α∞ ≥Φ ≈≥εß√ Σε±≥Φ≈ⁿ ²≥επε, ≥.Ω. ∞εµσ≥ ΓετφΦΩφ≤≥ⁿ
- ±δΦ°Ωε∞ ßεδⁿ°εσ ΩεδΦ≈σ±≥Γε ∩εΣΩδα±±εΓ (φα∩≡Φ∞σ≡, IntegerLinkedList,
- StringLinkedList Φ ≥.Σ.)
-
- [*] ╨εΣεΓεσ ∩≡επ≡α∞∞Φ≡εΓαφΦσ φα Java (∩≡ΦßδΦτΦ≥σδⁿφ√Θ ²ΩΓΦΓαδσφ≥ °αßδεφεΓ Γ
- C++) ≡αßε≥ασ≥ ∩≡Φσ∞δσ∞ε, ΩεπΣα Γ±σ java-Ωδα±±√ Γδ ■≥± ∩εΣΩδα±±α∞Φ
- ╬ß·σΩ≥α. ╬ΣφαΩε ±≤∙σ±≥Γ≤σ≥ ∩ε≥σφ÷Φαδⁿφα ∩≡εßδσ∞α - Γ±σπΣα σ±≥ⁿ Γσ≡ε ≥φε±≥ⁿ
- ≥επε, ≈≥ε ≡εΣεΓεΘ Ωεφ≥σΘφσ≡ ß≤Σσ≥ ±εΣσ≡µα≥ⁿ ≡ατδΦ≈φ√σ Ωδα±±√ εß·σΩ≥εΓ.
-
- ╧≡σΣ∩εδεµΦ∞, ┬√ ±ετΣαδΦ ≡εΣεΓεΘ Ωδα±± LinkedList. ╩αΩ εßστε∩α±Φ≥ⁿ ≥Φ∩√ ßστ
- φσεß⌡εΣΦ∞ε±≥Φ ±ετΣαΓα≥ⁿ ∞φεµσ±≥Γε ∩εΣΩδα±±εΓ (IntegerLinkedList,
- StringLinkedList Φ ≥.Σ.)?
-
- ╫≥εß√ εßεΘ≥Φ ²≥≤ ∩≡εßδσ∞≤, ∩≡Φ∞σφσφΦ≥σ Γ ≡εΣεΓε∞ Ωδα±±σ ±ε±≥αΓφεΘ
- Ωεφ±≥≡≤Ω≥ε≡, Ωε≥ε≡√Θ ß≤Σσ≥ ß≡α≥ⁿ ∩α≡α∞σ≥≡ ≥Φ∩α "Class" Φ Φ±∩εδⁿτεΓα≥ⁿ σπε
- Γ∞σ±≥σ ± ∞σ≥εΣε∞ "isInstance" ²≥επε Ωδα±±α, ≈≥εß√ πα≡αφ≥Φ≡εΓα≥ⁿ
- ∩≡σΣ∩εδαπασ∞√Θ ≥Φ∩ Σδ ╬ß·σΩ≥εΓ, ΣεßαΓδσφφ√⌡ Γ Ωεφ≥σΘφσ≡.
-
- public class LinkedList {
- Protected Class type = Object.class;
-
- public LinkedList(Class type) { this.type = type; }
-
- public void addElement(Object element) throws Exception
- {
- if(!type.isInstance( element ))
- throw new Exception(
- "╬µΦΣασ∞√Θ ²δσ∞σφ≥ ≥Φ∩α (" + type + ")" +
- " ∩εδ≤≈σφφ√Θ ²δσ∞σφ≥ ≥Φ∩α (" + element + ")" );
- ...
- }
- }
-
-
- ╟α∞σ≥ⁿ≥σ, ≈≥ε Ωε∞∞σφ≥α≡ΦΦ Γ Φ±⌡εΣφε∞ ≥σΩ±≥σ Σδ isInstance() ±±√δα■≥± φα
- "ε∩≡σΣσδσφφ√Θ ∩α≡α∞σ≥≡ ╩δα±±α", φα∞σΩα , ≈≥ε ┬α∞ ∩≡σΣδαπασ≥± φα∩Φ±α≥ⁿ
- ≈≥ε-≥ε ≥Φ∩α:
-
- public void addElement(Object element) throws Exception
- {
- Class c = element.getClass();
- if(!type.isInstance(c))
-
-
- ▌≥ε ≡αßε≥ασ≥, φε ΣεΩ≤∞σφ≥α÷Φ φα isInstance ≡ατ· ±φ σ≥, ≈≥ε ∩α≡α∞σ≥≡
- ∩≡σΣ∩ε≈≥Φ≥σδⁿφσσ ±Σσδα≥ⁿ ╬ß·σΩ≥ε∞ α φσ ╩δα±±ε∞. ╥αΩµσ τα∞σ≥ⁿ≥σ, ≈≥ε Γ JDK
- 1.2 Φ∞σ■≥± "╩εδδσΩ÷ΦΦ", Ωε≥ε≡√σ εßσ±∩σ≈ΦΓα■≥ πε≡ατΣε ßεδσσ ßστε∩α±φ√Θ Φ
- πΦßΩΦΘ ∞σ⌡αφΦτ∞. ╚φ⌠ε≡∞α÷Φ εß ²≥ε∞ ±εΣσ≡µΦ≥± φα ±αΘ≥σ Java Γ ≡ατΣσδσ Java
- Developer Connection: http://java.sun.com/
-
- ╚φ≥σ≡⌠σΘ±√ ∞σ≥εΣα
-
- *╩αΩ ∩σ≡σΣα≥ⁿ Γ ∞σ≥εΣ ∩σ≡σ∞σφφεσ ≈Φ±δε α≡π≤∞σφ≥εΓ?
-
- [*]
-
- 1. (╦σπΩΦΘ ±∩ε±εß). ╚±∩εδⁿτ≤Θ≥σ ∩σ≡σπ≡≤τΩ≤ ∞σ≥εΣα Σδ ∩εΣΣσ≡µΩΦ ≡ατδΦ≈φ√⌡
- ∩α≡α∞σ≥≡εΓ. ▌≥ε ≤∩≡ε∙ασ≥ ±α∞ Γ√τεΓ, φε ∞εµσ≥ Γ√Θ≥Φ Φτ ∩εΣ Ωεφ≥≡εδ ,
- σ±δΦ ┬√ τα⌡ε≥Φ≥σ ∩εΣΣσ≡µΦΓα≥ⁿ ßεδⁿ°εσ ≈Φ±δε ≡ατφεεß≡ατφ√⌡ ≥Φ∩εΓ
- ∩α≡α∞σ≥≡εΓ. ╩επΣα ΓετφΦΩασ≥ ≥αΩα φσεß⌡εΣΦ∞ε±≥ⁿ, ±≥εΦ≥ ταΣα≥ⁿ ±σßσ
- Γε∩≡ε±, π≡α∞ε≥φε δΦ ε≡παφΦτεΓαφ ΩεΣ ┬α°σΘ ∩≡επ≡α∞∞√?
- 2. (┴εδσσ τα∩≤≥αφφ√Θ). ╚±∩εδⁿτ≤Θ≥σ ∞α±±ΦΓ√. ┬ετ∞εµφε Σαµσ εß· Γδ ≥ⁿ
- ∞α±±ΦΓ√ ±εß±≥Γσφφε ∩≡Φ Γ√τεΓσ, ΩαΩ ∩εΩαταφε φΦµσ:
-
- foo("╧α≡α∞σ≥≡",
- new Object[] {"∩α≡α∞σ≥≡3", "∩α≡α∞σ≥≡4", new Integer(5)} );
- // ...
-
- void foo(String param1, Object param2[]) {
- System.out.println(param1);
- for (int i = 0; i < param2.length; i++) {
- System.out.println(param2[i].toString());
- }
- }
-
-
- ╚±∩εδⁿτ≤ Σαφφ√Θ ±∩ε±εß, ∞εµφε ∩σ≡σΣαΓα≥ⁿ Σαµσ ∞α±±ΦΓ√ ∞α±±ΦΓεΓ.
- ┼±≥σ±≥Γσφφε, Γφ≤≥≡Φ ∞σ≥εΣα, φσεß⌡εΣΦ∞ε ±≤∞σ≥ⁿ ∩≡αΓΦδⁿφε ε∩≡σΣσδΦ≥ⁿ
- α≡π≤∞σφ≥√ Φ ±εε≥Γσ≥±≥Γσφφε Φ±∩εδⁿτεΓα≥ⁿ Φ⌡.
- 3. ┬ Ωα≈σ±≥Γσ αδⁿ≥σ≡φα≥ΦΓ√ ∞εµφε ±ετΣα≥ⁿ Ωδα±±, ±εΣσ≡µα∙ΦΘ Γ±σ Γετ∞εµφ√σ
- ∩εδ , Ωε≥ε≡√σ ┬√ ⌡ε≥Φ≥σ ∩σ≡σΣαΓα≥ⁿ Γ ∞σ≥εΣ (∩δ■± ß≤δσΓ±ΩΦσ ∩σ≡σ∞σφφ√σ
- Σδ ≤ΩαταφΦ , ΓΩδ■≈σφε Σαφφεσ ∩εδσ ΦδΦ φσ≥), Φ ±Σσδα≥ⁿ εß·σΩ≥ Σαφφεπε
- Ωδα±±α ∩α≡α∞σ≥≡ε∞ ∞σ≥εΣα. ╥αΩΦ∞Φ µσ ±∩ε±εßα∞Φ ∞εµφε ΓετΓ≡α∙α≥ⁿ
- ≡ατδΦ≈φ√σ τφα≈σφΦ Φτ ∞σ≥εΣα; δΦßε Φ±∩εδⁿτ≤ ∞α±±ΦΓ√, δΦßε
- εß·σΩ≥-εßεδε≈Ω≤.
-
- ╬ΣφαΩε, φσ ±≥εΦ≥ ταß√Γα≥ⁿ Φ ∞≤Σ≡√σ ±δεΓα ∩≡ε⌠σ±±ε≡α └δαφα ╧σ≡δΦ±α (Alan
- Perlis): "┼±δΦ ┬α°α ∩≡ε÷σΣ≤≡α Φ∞σσ≥ ßεδⁿ°σ, ≈σ∞ ∩εδ-Σ■µΦφ√ ∩α≡α∞σ≥≡εΓ, ≥ε,
- Γσ≡ε ≥φε, Γ√ ε ≈σ∞-φΦß≤Σⁿ ταß√δΦ". ╧σ≡σΣα≈α ßεδⁿ°επε ΩεδΦ≈σ±≥Γα α≡π≤∞σφ≥εΓ
- Γ ⌠≤φΩ÷Φ■ ετφα≈ασ≥, ≈≥ε ²≥α ⌠≤φΩ÷Φ ∩δε⌡ε ε≡παφΦτεΓαφα.
-
- *(╫α±≥ⁿ 6) ╩αΩ ΓετΓ≡α∙α≥ⁿ ≡ατδΦ≈φ√σ εß·σΩ≥√ Γ ∩α≡α∞σ≥≡σ ∞σ≥εΣα?
- ╩αΩ ∩σ≡σΣα≥ⁿ εß·σΩ≥ Γ ∞σ≥εΣ, Φ τα±≥αΓΦ≥ⁿ ∞σ≥εΣ Φτ∞σφΦ≥ⁿ ±±√δΩ≤ ≥αΩ, ≈≥εß√
- εφα ≤Ωατ√Γαδα φα Σ≡≤πεΘ εß·σΩ≥ ∩≡Φ ΓετΓ≡α≥σ Γ Γ√τ√Γα■∙ΦΘ ΩεΣ?
-
- [*] ╤≤∙σ±≥Γ≤σ≥ ΣΓα ±∩ε±εßα. ╬≈σΓΦΣφ√Θ ∩≤≥ⁿ - "∩≡ε±≥ε ΣεßαΓΦ≥ⁿ σ∙σ εΣΦφ
- ≤≡εΓσφⁿ Γ Ωε±Γσφφ≤■ αΣ≡σ±α÷Φ■". ╧ε∞σ±≥Φ≥σ εß·σΩ≥ Γ Σ≡≤πεΘ Ωδα±±,
- ∩≡σΣφατφα≈σφΦσ Ωε≥ε≡επε - ß√≥ⁿ ∩σ≡σΣαφφ√∞ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α, ∩ετΓεδ
- ∞εΣΦ⌠Φ÷Φ≡εΓα≥ⁿ ±±√δΩ≤ φα φσ±ε∞√Θ εß·σΩ≥.
- ┬≥ε≡εΘ ±∩ε±εß - ßεδσσ ∩εφ ≥φ√Θ Γα≡Φαφ≥ ∩σ≡Γεπε. ╧σ≡σΣαΘ≥σ εß·σΩ≥ Γ
- εΣφε±Φ∞Γεδⁿφε∞ ∞α±±ΦΓσ. ╥αΩ ΩαΩ ∞α±±ΦΓ√ ±α∞Φ Γδ ■≥± εß·σΩ≥α∞Φ, ≥ε ²≥ε
- ≡αßε≥ασ≥.
-
- void jfoo(Object ref[]){
- ref[0] = new Object();
- }
- ...
- Object kludge[] = new Object[1];
- kludge[0]= myObj;
- jfoo(kludge);
- if (kludge[0] == myObj) ...
- else ...
-
-
- ╟α∞σ≥ⁿ≥σ, ≈≥ε Φτ∞σφσφΦσ πδεßαδⁿφεΘ ∩σ≡σ∞σφφεΘ/εß·σΩ≥α Γφ≤≥≡Φ ∞σ≥εΣα
- Γδ σ≥± ∩δε⌡Φ∞ ±≥Φδσ∞ ∩≡επ≡α∞∞Φ≡εΓαφΦ ; ∩≡Φ ²≥ε∞ εß√≈φε φα≡≤°α■≥±
- ε±φεΓφ√σ Ωεφ±≥≡≤Ω÷ΦΦ ╬╬╧.
-
- *(╫α±≥ⁿ 6) ╩αΩ ±Σσδα≥ⁿ, ≈≥εß√ ∞σ≥εΣ ΓετΓ≡α∙αδ φσ±ΩεδⁿΩε τφα≈σφΦΘ?
-
- [*] ╠εµφε ∩≡ε±≥ε φα∩Φ±α≥ⁿ ⌠≤φΩ÷Φ■, ΓετΓ≡α∙α■∙≤■ ┬σΩ≥ε≡. ▌≥ε ε±εßσφφε
- ≤Σεßφε, ΩεπΣα ┬√ φσ ≤Γσ≡σφ√ Γ ΩεδΦ≈σ±≥Γσ ΓετΓ≡α∙ασ∞√⌡ τφα≈σφΦΘ, ≥.Ω. εφε
- ταΓΦ±Φ≥ ε≥ ∩≡εΦ±⌡εΣ ∙σπε Γ ∞σ≥εΣσ. ┬σΩ≥ε≡ ∩ε ±≤∙σ±≥Γ≤ Γδ σ≥± ΣΦφα∞Φ≈σ±ΩΦ
- ≡α±°Φ≡ σ∞√∞ ∞α±±ΦΓε∞. ╨σπ≤δ ≡φ√σ ∞α±±ΦΓ√ φσ ∞επ≤≥ ≤ΓσδΦ≈ΦΓα≥ⁿ± ∩ε±δσ ≥επε,
- ΩαΩ Φ⌡ εß· ΓΦδΦ - ∩≡Φ⌡εΣΦ≥± εß· Γδ ≥ⁿ φεΓ√Θ ∞α±±ΦΓ ßεδⁿ°σΘ ≡ατ∞σ≡φε±≥Φ Φ
- ∩σ≡σΩΦΣ√Γα≥ⁿ Γ φσπε ±εΣσ≡µΦ∞εσ ±≥α≡επε.
-
- ╠α±±ΦΓ√
-
- *(╫α±≥ⁿ 6) ╩αΩ ≡ατ∞σ±≥Φ≥ⁿ Γ ∩α∞ ≥Φ ∞φεπε∞σ≡φ√Θ ∞α±±ΦΓ?
-
- [*] ┼±≥ⁿ φσ±ΩεδⁿΩε ±∩ε±εßεΓ. ┼±δΦ ┬α∞ φσεß⌡εΣΦ∞ ∩≡ ∞ε≤πεδⁿφ√Θ ∞α±±ΦΓ, ≥ε
- Γ±■ ∩α∞ ≥ⁿ Σδ φσπε ∞εµφε Γ√ΣσδΦ≥ⁿ τα εΣΦφ ≡ατ. ╤δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡ ±ετΣασ≥
- ∞α±±ΦΓ 4x5:
-
- int arr[][] = new int[4][5];
-
-
- ┼±δΦ ┬√ ⌡ε≥Φ≥σ, ≈≥εß√ ΩαµΣ√Θ ≡ Σ ±εΣσ≡µαδ ±Γεσ ≈Φ±δε ΩεδεφεΩ, ∞εµσ≥σ
- Φ±∩εδⁿτεΓα≥ⁿ ≥ε≥ ⌠αΩ≥, ≈≥ε ΣΓ≤⌡≡ατ∞σ≡φ√Θ ∞α±±ΦΓ φα ±α∞ε∞ Σσδσ Γδ σ≥±
- ∞α±±ΦΓε∞ ∞α±±ΦΓεΓ. ╤δσΣ≤■∙α ≈α±≥ⁿ ΩεΣα ≡ατ∞σ∙ασ≥ Γ ∩α∞ ≥Φ ≥≡σ≤πεδⁿφ√Θ
- ∞α±±ΦΓ:
-
- int arr[][] = new int[4][]; // ≡ατ∞σ∙σφΦσ ∞α±±ΦΓα Φτ ≈σ≥√≡σ⌡ ≡ ΣεΓ
- for (int i = 0; i < 4; i++) // ΦφΦ÷ΦαδΦτα÷Φ ΩαµΣεπε ≡ Σα
- arr[i] = new int[i + 1]; // ≡ Σ i ±εΣσ≡µΦ≥ i+1 ΩεδεφΩ≤
-
-
- ╟α∞σ≥ⁿ≥σ, ≈≥ε σ±δΦ ≡ατ∞σ∙ασ≥± ∞α±±ΦΓ δ■ß√⌡ εß·σΩ≥εΓ (Γ ∩≡ε≥ΦΓε∩εδεµφε±≥ⁿ
- ∩≡Φ∞Φ≥ΦΓφ√∞ ≥Φ∩α∞), ≥ε Γ±σ ±±√δΩΦ ß≤Σ≤≥ ∩ε ≤∞εδ≈αφΦ■ "null-±±√δΩα∞Φ",
- Ωε≥ε≡√σ ∩≡Φ ∩ε∩√≥Ωσ ≡ατ√∞σφεΓαφΦ ∞επ≤≥ ∩≡σΓ≡α≥Φ≥ⁿ± Γ Φ±Ωδ■≈σφΦ
- NullPointerException.
- ─≡≤πΦ∞Φ ±δεΓα∞Φ, ∩ε±δσ:
-
- int arr[] = new int[4];
-
-
- ∞εµφε φα∩Φ±α≥ⁿ
-
- if (arr[2] == 0)
-
-
- ╬ΣφαΩε, ∩ε±δσ
-
- Integer Iarr[] = new Integer[4];
-
-
- ┬√ Σεδµφ√ τα∩εδφΦ≥ⁿ ±±√δΩ≤ φα εß·σΩ≥ ∩σ≡σΣ σσ Φ±∩εδⁿτεΓαφΦσ∞. Hα∩≡Φ∞σ≡,
-
- Iarr[2] = myInt;
-
-
- ΦδΦ
-
- arr[2] = new Int(27);
-
-
- ∩σ≡σΣ ²≥Φ∞ ∞εµφε φα∩Φ±α≥ⁿ
-
- if (Iarr[2].equals(myInt))
-
- *(Sect. 6) ╩αΩ ±Ωε∩Φ≡εΓα≥ⁿ ∞α±±ΦΓ?
-
- [*] ┼±δΦ ∞α±±ΦΓ ±ε±≥εΦ≥ Φτ ²δσ∞σφ≥εΓ εΣφεπε Φτ ßατεΓ√⌡ ≥Φ∩εΓ ΦδΦ µσ Γα∞
- φσεß⌡εΣΦ∞ε ±Ωε∩Φ≡εΓα≥ⁿ ≥εδⁿΩε ±±√δΩΦ (α φσ ±ετΣαΓα≥ⁿ Ωε∩ΦΦ εß·σΩ≥εΓ),
- Φ±∩εδⁿτ≤Θ≥σ ∞σ≥εΣ
-
- java.lang.System.arraycopy(Object src, int src_position,
- Object dst, int dst_position, int length);
-
-
- ┼±δΦ µσ Γα°α ÷σδⁿ - ±ετΣα≥ⁿ Ωε∩ΦΦ εß·σΩ≥εΓ, Γ√ Σεδµφ√ ±ετΣα≥ⁿ φεΓ√Θ ∞α±±ΦΓ
- Φ φα∩Φ±α≥ⁿ ÷ΦΩδ, Ωε≥ε≡√Θ ±Ωε∩Φ≡≤σ≥ ΩαµΣ√Θ ²δσ∞σφ≥ ±≥α≡επε ∞α±±ΦΓα Γ
- ±εε≥Γσ≥±≥Γ≤■∙ΦΘ σ∞≤ ²δσ∞σφ≥ φεΓεπε.
-
- ╬ß≡α≥Φ≥σ ΓφΦ∞αφΦσ: Γ ΣεΩ≤∞σφ≥α÷ΦΦ φα java.lang.System.arraycopy() ≤Ωαταφε,
- ≈≥ε σ±δΦ src Φ dst ±±√δα■≥± φα εΣΦφ Φ ≥ε≥ µσ εß·σΩ≥, ≥ε arraycopy() ΓσΣσ≥
- ±σß ≥αΩ, ΩαΩ σ±δΦ ß√ ²δσ∞σφ≥√ Φ±⌡εΣφεπε ∞α±±ΦΓα Ωε∩Φ≡εΓαδΦ±ⁿ Γε Γ≡σ∞σφφ√Θ
- ∞α±±ΦΓ (≥.σ. εφΦ ±ε⌡≡αφ ■≥± ). Sun φσ ≤Ωατ√Γασ≥, ±ετΣασ≥± δΦ ΣσΘ±≥ΓΦ≥σδⁿφε
- ∩≡Φ ²≥ε∞ Γ≡σ∞σφφ√Θ ∞α±±ΦΓ.
-
- ─≡≤πΦσ Φ±≥ε≈φΦΩΦ:
- JLS 20.18.16 {java.lang.System.arraycopy()}
-
- *(Sect. 6) ╩αΩ ε≈Φ±≥Φ≥ⁿ ∞α±±ΦΓ?
-
- [*] ╠σ≥εΣεΓ Σδ ε≈Φ±≥ΩΦ ∞α±±ΦΓα Γ 0.0, 0, null, false, '\u0000' Φ ≥.∩. φσ
- ±≤∙σ±≥Γ≤σ≥. ╩επΣα Γ√ ±ετΣασ≥σ ∞α±±ΦΓ, σπε ²δσ∞σφ≥√ ΦφΦ÷ΦαδΦτΦ≡≤■≥±
- τφα≈σφΦσ∞ ∩ε ≤∞εδ≈αφΦ■ (default value), φε ∩εΓ≥ε≡Φ≥ⁿ αΓ≥ε∞α≥Φ≈σ±Ω≤■
- ΦφΦ÷ΦαδΦτα÷Φ■ φσΓετ∞εµφε.
-
- ┼±δΦ Γα∞ φσεß⌡εΣΦ∞ε ∞φεπε ≡ατ ≤±≥αφαΓδΦΓα≥ⁿ ∞α±±ΦΓ Γ εΣφε Φ ≥ε µσ ∞φεµσ±≥Γε
- τφα≈σφΦΘ, ±ετΣαΘ≥σ ∞α±±ΦΓ-°αßδεφ. ╚φΦ÷ΦαδΦτΦ≡≤Θ≥σ σπε φσεß⌡εΣΦ∞√∞ φαßε≡ε∞
- τφα≈σφΦΘ Φ Φ±∩εδⁿτ≤Θ≥σ System.arraycopy() Σδ Ωε∩Φ≡εΓαφΦ Γ ≡αßε≈ΦΘ ∞α±±ΦΓ
- ΩαµΣ√Θ ≡ατ, ΩεπΣα ≥≡σß≤σ≥± ∩σ≡σ≤±≥αφεΓΩα τφα≈σφΦΘ ≡αßε≈σπε ∞α±±ΦΓα.
-
- *(Sect. 6) ╩αΩεΘ φαΦßεδσσ ß√±≥≡√Θ ∩≤≥ⁿ ≤±≥αφεΓΩΦ τφα≈σφΦΘ Γ±σ⌡ ²δσ∞σφ≥εΓ
- ∞α±±ΦΓα?
- ▀ φσ ⌡ε≈≤ Φ±∩εδⁿτεΓα≥ⁿ ∞α±±ΦΓ-°αßδεφ. ▀ ⌡ε≥σδ ß√ Σσδα≥ⁿ ²≥ε ßστ
- Σ≤ßδΦ≡εΓαφΦ (Γετ∞εµφε, ßεδⁿ°επε) ∞α±±ΦΓα.
-
- [*] ╚±∩εδⁿτεΓαφΦσ ÷ΦΩδα, Ωε≥ε≡√Θ ∩εε≈σ≡σΣφε ∩≡Φ±ΓαΦΓασ≥ τφα≈σφΦ ²δσ∞σφ≥α∞
- ∞α±±ΦΓα, Γ 20 - 40 ≡ατ ∞σΣδσφφσσ, ≈σ∞ ±≥α≡√Θ Σεß≡√Θ memset() Γ ╤Φ.
-
- Hα ∞φεπΦ⌡ Java Virtual Machine (JVM) ∞εµφε ±Σσδα≥ⁿ ≥αΩ: ∩≡Φ±ΓεΦ≥ⁿ τφα≈σφΦσ
- ∩σ≡Γε∞≤ ßαΘ≥≤ ∞α±±ΦΓα, Φ±∩εδⁿτεΓα≥ⁿ System.arraycopy() Σδ
- ∩ε±δσΣεΓα≥σδⁿφεπε τα∩εδφσφΦ ±δσΣ≤■∙σπε ßαΘ≥α, τα≥σ∞ ±δσΣ≤■∙Φ⌡ ΣΓ≤⌡ ßαΘ≥,
- ±δσΣ≤■∙Φ⌡ ≈σ≥√≡σ⌡ ßαΘ≥, ±δσΣ≤■∙Φ⌡ Γε±ⁿ∞Φ ßαΘ≥ Φ ≥.Σ. ∩εΩα φσ ε±≥αφσ≥±
- ∞σφⁿ°α ≈α±≥ⁿ ∞α±±ΦΓα, Ωε≥ε≡≤■ System.arraycopy() τα∩εδφΦ≥ Γ εΣΦφ ∩≡Φσ∞.
-
- public static void bytefill(byte[] array, byte value) {
- int len = array.length;
- if (len > 0)
- array[0] = value;
- for (int i = 1; i < len; i += i)
- System.arraycopy( array, 0, array, i,
- ((len - i) < i) ? (len - i) : i);
- }
-
-
- Hα Sun'εΓ±ΩεΘ JVM ²≥ε≥ ΩεΣ Γ√∩εδφ σ≥± ß√±≥≡σσ, ≈σ∞ εß√≈φ√Θ ÷ΦΩδ, Φ Σαµσ
- ß√±≥≡σσ, ≈σ∞ φα JIT-Ωε∞∩Φδ ≥ε≡α⌡, ∩ε≥ε∞≤ ≈≥ε Ωεφ≥≡εδⁿ Γ√⌡εΣα τα π≡αφΦ÷√
- ∞α±±ΦΓα τΣσ±ⁿ ∩≡εΓεΣΦ≥± Γ±σπε δΦ°ⁿ Σε log2(array.length) ≡ατ. ╧≡Φ≈σ∞ ²≥ε≥
- ±∩ε±εß ≡αßε≥ασ≥, Σαµσ σ±δΦ ≡ατ∞σ≡ ∞α±±ΦΓα φσ Γδ σ≥± ±≥σ∩σφⁿ■ ΣΓ≤⌡.
-
- ------------------------------
-
- 7. I/O
-
- 1. (Sect. 7) ╩αΩ ∩≡ε≈Φ≥α≥ⁿ ⌠αΘδ, ±εΣσ≡µα∙ΦΘ ≈Φ±δα Γ ±Φ∞ΓεδⁿφεΘ ⌠ε≡∞σ?
-
- [*] ┼±≥ⁿ φσ±ΩεδⁿΩε ±∩ε±εßεΓ. HΦµσ ∩≡ΦΓσΣσφ εΣΦφ Φτ φΦ⌡. ─ε∩≤±≥Φ∞, ⌠αΘδ
- φατ√Γασ≥± "C:\work\mydata.txt" Φ ±εΣσ≡µΦ≥ ±≥≡εΩΦ ΓΦΣα:
-
- 135 7512 3659814 328 1 54829
- 68522 19982810 38
-
- ≥.e. φσ±ΩεδⁿΩε ±≥≡εΩ ASCII, Γ Ωε≥ε≡√⌡ ≈Φ±δα ≡ατΣσδσφ√ ∩≡εßσδα∞Φ.
- ┬ε≥ ⌠≡απ∞σφ≥ ΩεΣα:
-
- // ╬≥Ω≡√Γασ∞ ⌠αΘδ
- RandomAccessFile f = new RandomAccessFile("c:\\work\\datafile.txt", "r");
-
- // ╫Φ≥ασ∞ Φτ φσπε εΣφ≤ ±≥≡εΩ≤
- String s= f.readLine();
-
- // ╨ατßΦ≡ασ∞ ±≥≡εΩ≤
- StringTokenizer st = new StringTokenizer(s);
-
- // ╚τΓδσΩασ∞ Φτ ±≥≡εΩΦ ÷σδεσ ≈Φ±δε
- i = Integer.parseInt(st.nextToken());
-
- ╠√ Φ±∩εδⁿτεΓαδΦ RandomAccessFile, ∩ε≥ε∞≤ ≈≥ε τΣσ±ⁿ φα∩≡ ∞≤■
- ∩εΣΣσ≡µΦΓασ≥± ∞σ≥εΣ readLine(). └δⁿ≥σ≡φα≥ΦΓεΘ ∞επδε ß√ ß√≥ⁿ ±ετΣαφΦσ
- FileReader Φ φα σπε ßατσ BufferedReader. ╥σ∩σ≡ⁿ ±ΓσΣσ∞ Γ±σ ²≥ε Γ∞σ±≥σ,
- Φ, ΣεßαΓΦΓ εß≡αßε≥Ω≤ Φ±Ωδ■≈σφΦ Γ ±δ≤≈ασ σ±δΦ ⌠αΘδ φσ ±≤∙σ±≥Γ≤σ≥,
- ∩εδ≤≈Φ∞ ±δσΣ≤■∙σσ:
-
- import java.io.*;
- import java.util.*;
- public class c {
- public static void main(String args[]) {
- try {
- RandomAccessFile f = new RandomAccessFile
- ("datafile.txt", "r");
- String s;
- while ( (s=f.readLine()) != null ) {
- System.out.println("read: "+s);
-
- StringTokenizer st = new StringTokenizer(s);
- int i=0;
- while (st.hasMoreTokens()) {
- i = Integer.parseInt(st.nextToken());
- // i ±σΘ≈α± ±εΣσ≡µΦ≥ ±δσΣ≤■∙σσ ÷σδεσ ≈Φ±δε Φτ ±≥≡εΩΦ
- // αφαδεπΦ≈φε Φ±∩εδⁿτ≤σ≥± Double.parseDouble(), Φ ≥.∩..
-
- System.out.print(" "+ i);
- }
- System.out.println();
- }
-
- } catch (Exception e) {System.out.println("Excpn: "+e); }
- // ⌠αΘδεΓ√Θ ΓΓεΣ-Γ√ΓεΣ, Φτ ΩφΦπΦ "Just Java" ╧σ≥σ≡α Γαφ Σσ≡ ╦ΦφΣσφα
- }
- }
-
- ╤∞ε≥≡Φ≥σ ≥αΩµσ ±δσΣ≤■∙ΦΘ Γε∩≡ε±: ΩαΩ ≈Φ≥α≥ⁿ Σαφφ√σ ± ΩδαΓΦα≥≤≡√.
-
- 2. (Sect. 7) ╩αΩ ≈Φ≥α≥ⁿ String/int/boolean/≥.∩. ± ΩδαΓΦα≥≤≡√?
-
- [*] ╤α∞εσ δσπΩεσ ≡σ°σφΦσ - ≡ατΣεß√≥ⁿ Φ±⌡εΣφΦΩΦ Ωδα±±α EasyIn, δσµα∙Φσ
- ∩ε αΣ≡σ±≤ http://www.afu.com/ (≥α∞ µσ, πΣσ αφπδε τ√≈φα Γσ≡±Φ ²≥επε
- FAQ). ╤Ωε∞∩ΦδΦ≡≤Θ≥σ Φ⌡ ± Γα°Φ∞ ΩεΣε∞ Φ Φ±∩εδⁿτ≤Θ≥σ, φα∩≡Φ∞σ≡, ≥αΩ:
-
- EasyIn easy = new EasyIn();
-
- int i = easy.readInt(); // ≈Φ≥ασ∞ int Φτ System.in
- boolean b = easy.readBoolean(); // ≈Φ≥ασ∞ boolean Φτ System.in
- double d = easy.readDouble(); // ≈Φ≥ασ∞ double Φτ System.in
-
-
- ... Φ ≥αΩ Σαδσσ.
-
- EasyIn ßσ±∩δα≥σφ, ± σπε Φ±⌡εΣφΦΩα∞Φ Γ√ Φ∞σσ≥σ ∩≡αΓε Σσδα≥ⁿ Γ±σ ≈≥ε Γα∞
- φ≡αΓΦ≥± . ┬ ≥ε∞ ≈Φ±δσ ≤δ≤≈°α≥ⁿ Φ⌡.
-
- ┼±δΦ Γα∞ φσεß⌡εΣΦ∞ ≥εδⁿΩε ±εß±≥Γσφφε≡≤≈φε φα∩Φ±αφφ√Θ ΩεΣ (τα≈σ∞,
- Φφ≥σ≡σ±φε), ≥ε Γ JDK 1.0.2
-
- java.io.DataInputStream in = new java.io.DataInputStream(System.in);
- String s = in.readLine();
-
-
- ┼∙σ εΣΦφ ±∩ε±εß Γ JDK 1.1:
-
- java.io.BufferedReader in =
- new java.io.BufferedReader( new InputStreamReader(System.in));
-
- String s = in.readLine();
-
-
- ┼±δΦ φσεß⌡εΣΦ∞ε ≡ατεß≡α≥ⁿ ±≥≡εΩ≤, Φτ φσσ ∞εµφε δσπΩε Γ√ΣσδΦ≥ⁿ δσΩ±σ∞√
- δ■ßεπε ≥Φ∩α, ΩαΩ ≤µσ ß√δε ∩εΩαταφε Γ√°σ Γ ²≥ε∞ FAQ. HσΣε±≥α≥εΩ ²≥επε
- ±∩ε±εßα Γ ≥ε∞, ≈≥ε Φ±Ω≤±±≥Γσφφε ≤±δεµφ σ≥± ∩≡ε±≥σΘ°σσ ≡σ°σφΦσ Σδ
- ΓΓεΣα/Γ√ΓεΣα ± ΩδαΓΦα≥≤≡√. ┬ ßδΦµαΘ°σ∞ ß≤Σ≤∙σ∞ Javasoft Γ≡ Σ δΦ
- ∩≡σΣδεµΦ≥ ßεδσσ ≤Σεßφ√Θ ±∩ε±εß.
-
- 3. (Sect. 7) ╧ε≈σ∞≤ ΓετφΦΩα■≥ ∩≡εßδσ∞√ ± System.out.println()? ╧≡εΓσ≡ⁿ≥σ
- φα∩Φ±αφΦσ. ╧ε±δσΣφΦσ ΣΓσ ß≤ΩΓ√ - ²≥ε "l" Φ "n", α φσ εΣφα "n".
-
- ╚∞ ∞σ≥εΣα ∩≡εΦ±⌡εΣΦ≥ ε≥ ±δεΓε±ε≈σ≥αφΦ "print line" ("∩σ≈α≥ⁿ
- ±≥≡εΩΦ"), ≥αΩ ΩαΩ εφ (∞σ≥εΣ) Γ√ΓεΣΦ≥ φα ∩σ≈α≥ⁿ εß·σΩ≥ Ωδα±±α String Φ
- ∩σ≡σ⌡εΣΦ≥ φα ±δσΣ≤■∙≤■ ±≥≡εΩ≤ (Γ ε≥δΦ≈Φσ ε≥ System.out.print() ). ╩
- ±εµαδσφΦ■, ±επδα°σφΦσ ε φατΓαφΦ ⌡ ∞σ≥εΣεΓ Γ Java ±εßδ■Σασ≥±
- ±δαßεΓα≥ε. ╥αΩ, Φ∞ ∞σ≥εΣα, ∩≡σΣφατφα≈σφφεπε Σδ ≈≥σφΦ ±≥≡εΩΦ ±
- ΩδαΓΦα≥≤≡√, ΓεΓ±σ φσ readln(), ∞επδε ß√ ∩εΩατα≥ⁿ± , α readLine().
-
- 4. (Sect. 7) ╩αΩ ∩Φ±α≥ⁿ Γ COM ∩ε≡≥, Φ±∩εδⁿτ≤ Java?
-
- [*] ┬ JDK 1.2 σ±≥ⁿ ∩δα≥⌠ε≡∞σφφε-φσταΓΦ±Φ∞√Θ Φφ≥σ≡⌠σΘ±
- ∩ε±δσΣεΓα≥σδⁿφεπε ∩ε≡≥α. ─εΩ≤∞σφ≥α÷Φ■ Ω φσ∞≤ ∞εµφε ∩εδ≤≈Φ≥ⁿ,
- τα≡σπΦ±≥≡Φ≡εΓαΓ°Φ±ⁿ φα Java Developer Connection (²≥ε ßσ±∩δα≥φε),
- http://java.sun.com) α ≥α∞ ΦΣΦ≥σ φα
- http://java.sun.com/jdc/earlyAccess/communications.html.
-
- ─δ ±Φ±≥σ∞ ±≥α≡°σ JDK 1.2 σ±≥ⁿ ΩαΩ ∞ΦφΦ∞≤∞ ΣΓσ ßΦßδΦε≥σΩΦ Σδ ≡αßε≥√ ±
- COM- ∩ε≡≥α∞Φ. ╤∞ε≥≡Φ≥σ
- o http://www.sc-systems.com σ±≥ⁿ Γσ≡±ΦΦ Σδ Windows 95, WindowsNT,
- OS/2, Macintosh PPC, Solaris Sparc, Linux x86, FreeBSD x86, HP/UX
- PA-RISC, Φ Γετ∞εµφε σ∙σ Σδ φσΩε≥ε≡√⌡.
- o http://www.cd.com/portio
- o ╩ ≥ε∞≤ µσ Γ Unix σ±≥ⁿ ≤≥ΦδΦ≥α Σδ ≡αßε≥√ ± ∩ε±δσΣεΓα≥σδⁿφ√∞Φ
- ∩ε≡≥α∞Φ. ╬φα Γ∞σ±≥σ ± Φ±⌡εΣφΦΩα∞Φ δσµΦ≥ φα
- http://jarvi.ezlink.com/rxtx/ ╬φα ßσ±∩δα≥φα φα ≤±δεΓΦ ⌡ GPL, Φ
- ≡αßε≥ασ≥ φα Linux, Irix, Solaris, Windows 95, Φ NT.
-
- ┼±≥ⁿ σ∙σ εΣφε ≡σ°σφΦσ ∩≡εßδσ∞√, ∩σ≡σφε±Φ∞εσ, ≡αßε≥α■∙σσ φα Java 1.1 Φ
- Σαµσ 1.0, φε ∞αδε ∩εΣ⌡εΣ ∙σσ Σδ Σε∞α°φΦ⌡ ∩εδⁿτεΓα≥σδσΘ. ╧εΩ≤∩αΘ≥σ
- COM-∩ε≡≥√ Γ ⌠ε≡∞σ "≥σ≡∞Φφαδⁿφεπε ±σ≡Γσ≡α" ("terminal server").
- ╚±∩εδⁿτεΓαφΦσ COM-∩ε≡≥α ±≥αφεΓΦ≥± ≥αΩΦ∞ µσ ∩≡ε±≥√∞, ΩαΩ ∩εΣ±εσΣΦφσφΦσ
- Ω ∩ε≡≥≤ ± ∩ε∞ε∙ⁿ■ Socket. ╧α≡α∞σ≥≡√ ∩ε≡≥α ∞επ≤≥ ß√≥ⁿ ∩≡επ≡α∞∞φε
- Φτ∞σφσφ√ ± ∩ε∞ε∙ⁿ■ SNMP Σδ ßεδⁿ°Φφ±≥Γα ≥σ≡∞Φφαδⁿφ√⌡ ±σ≡Γσ≡εΓ (σ±δΦ ┬√
- ≡αßε≥ασ≥σ ± ±εΓ≡σ∞σφφ√∞ ∞εΣσ∞ε∞, ┬α∞ ²≥ε Γ≡ Σ δΦ ∩εφαΣεßΦ≥± ). ╦■ßεΘ
- Ωε∞∩ⁿ■≥σ≡ Γ ±σ≥Φ (Σαµσ σ±δΦ εφ ∩εΣ Win95) ∞εµσ≥ ≡αßε≥α≥ⁿ ΩαΩ
- ≥σ≡∞Φφαδⁿφ√Θ ±σ≡Γσ≡, Φ∞σ ∩≡ε±≥εσ ±σ≡Γσ≡φεσ ╧╬, φε ∩εΩ≤∩Ωα
- ±∩σ÷ΦαδΦτΦ≡εΓαφφεπε α∩∩α≡α≥φεπε εßσ±∩σ≈σφΦ τφα≈Φ≥σδⁿφε ≤∩≡ε±≥Φ≥
- ταΣα≈≤.
-
- ╩ ≥ε∞≤ µσ, Γα°Φ Windows95 ∩≡ΦδεµσφΦ ∞επ≤≥ ±εΓ∞σ±≥φε Φ±∩εδⁿτεΓα≥ⁿ
- ╤╬╠-∩ε≡≥√ (± δ■ß√∞Φ ∞εΣσ∞α∞Φ φα ∩ε≡≥α⌡) ± ∩ε∞ε∙ⁿ■ ╧╬ "Dial-out IP" ∩εΣ
- Windows95. ╤∞ε≥≡Φ≥σ τΣσ±ⁿ: http://www.tactical-sw.com/.
-
- ┼±δΦ ∩ε≡≥ ∩εΣ∞εφ≥Φ≡εΓαφ Ω ⌠αΘδεΓεΘ ±Φ±≥σ∞σ, Γ√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ σπε
- ΩαΩ ⌠αΘδ, ε≥Ω≡√Γα Σδ ≈≥σφΦ Φ/ΦδΦ τα∩Φ±Φ. ╥αΩΦ∞ µσ ∩≤≥σ∞ ∞εµφε
- Γ√ΓεΣΦ≥ⁿ φα ∩σ≈α≥ⁿ ≥σΩ±≥, Ωε∩Φ≡≤ σπε Γ ≤±≥≡εΘ±≥Γε "prn" ΦδΦ "lpt1" φα
- ╨╤-±εΓ∞σ±≥Φ∞√⌡ ±Φ±≥σ∞α⌡ (εß τα≥σδⁿφε ταΓσ≡°ΦΓ ≥σΩ±≥ ±Φ∞Γεδε∞ Ωεφ÷α
- ⌠αΘδα), ΦδΦ Γ "/dev/≈≥ε-φΦß≤Σⁿ" Γ Unix. HΦµσ ∩≡ΦΓσΣσφ ∩≡Φ∞σ≡:
-
- // Ωδα±±, ε≥Ω≡√Γα■∙ΦΘ ∩≡Φφ≥σ≡ ΩαΩ ⌠αΘδ
- // Φ τα∩Φ±√Γα■∙ΦΘ Γ φσπε ±≥≡εΩ≤ "Hello, world"
-
- import java.io.*;
- public class lpt {
- public static void main (String[] argv) {
- try {
- FileOutputStream os = new FileOutputStream("LPT1");
- //±ετΣασ∞ "Σ≡≤µσ±≥Γσφφ√Θ" PrintStream
- PrintStream ps = new PrintStream(os);
-
- //Γ√ΓεΣΦ∞ ≥σΩ±≥
- ps.println("Hello world!");
-
- //∩≡ΦτφαΩ Ωεφ÷α ⌠αΘδα -- ²≥ε Γαµφε
- //┴στ φσπε ≥σΩ±≥ ∩≡ε±≥ε ∩ε∩αΣσ≥ Γ ß≤⌠σ≡ ∩≡Φφ≥σ≡α
- // ∩εΩα ≈≥ε-φΦß≤Σⁿ σ∙σ φσ ß≤Σσ≥ Γ√ΓεΣΦ≥ⁿ± φα ∩σ≈α≥ⁿ.
- ps.print("\f");
- //±ß≡α±√Γασ∞ ß≤⌠σ≡ Φ ταΩ≡√Γασ∞ ∩ε≥εΩ
- ps.close();
- } catch (Exception e) {
- System.out.println("Exception occurred: " + e);
- }
- }
- }
-
-
- ┼±δΦ φσεß⌡εΣΦ∞ε Φτ∞σφΦ≥ⁿ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ ∩ε≡≥α (φα∩≡., ±Ωε≡ε±≥ⁿ ΦδΦ
- ≈σ≥φε±≥ⁿ), α φσ ∩≡ε±≥ε ∩Φ±α≥ⁿ ΦδΦ ±≈Φ≥√Γα≥ⁿ Σαφφ√σ, ≥ε, Ω ±εµαδσφΦ■,
- Java φα Σαφφ√Θ ∞ε∞σφ≥ φσ Φ∞σσ≥ ∩σ≡σφε±Φ∞√⌡ ≡σ°σφΦΘ Σδ ²≥εΘ ∩≡εßδσ∞√.
- ┬α∞ ∩≡ΦΣσ≥± Γε±∩εδⁿτεΓα≥ⁿ± εΣφεΘ Φτ ßΦßδΦε≥σΩ, ≤Ωαταφφ√⌡ Γ√°σ, ΦδΦ
- µσ εß≡α≥Φ≥ⁿ± Ω ±Φ±≥σ∞φε-ταΓΦ±Φ∞ε∞≤ ΩεΣ≤ ΦδΦ ≤≥ΦδΦ≥σ.
-
- *(╫α±≥ⁿ 7) ╩αΩ ∞επ≤ ±Σσδα≥ⁿ ß√±≥≡σσ ΓΓεΣ/Γ√ΓεΣ? ╠ε ∩≡επ≡α∞∞α
- Ωε∩Φ≡εΓαφΦ ⌠αΘδεΓ ≡αßε≥ασ≥ ∞σΣδσφφε.
-
- [*] ─δ ²≥εΘ ÷σδΦ φαΣε Φ±∩εδⁿτεΓα≥ⁿ BufferedInputStream. HσΣε±≥α≥Ωε∞ Java
- Γδσ≥± ≥ε, ≈≥ε ß≤⌠σ≡ΦτεΓαφφ√Θ ΓΓεΣ/Γ√ΓεΣ φσ Φ±∩εδⁿτ≤σ≥± ∩ε ≤∞εδ≈αφΦ■;
- ∞εµφε ß√δε ß√ Φ±∩εδⁿτεΓα≥ⁿ φσΩΦΘ ⌠δαπ ΦδΦ αδⁿ≥σ≡φα≥ΦΓφ√Θ Ωεφ±≥≡≤Ω≥ε≡ Σδ
- σπε ε≥Ωδ■≈σφΦ . ╧αΩσ≥ ΓΓεΣα/Γ√ΓεΣα - Γ≥ε≡εΘ φαΦßεδσσ ∩δε⌡ε ≡σαδΦτεΓαφφ√Θ
- ∩αΩσ≥ Γ Java ∩ε±δσ Ωδα±±α Data.
-
- *(╫α±≥ⁿ 7) ╩αΩ ∞επ≤ ε≡παφΦτεΓα≥ⁿ ⌠ε≡∞α≥Φ≡εΓαφφ√Θ ΓΓεΣ/Γ√ΓεΣ Γσ∙σ±≥Γσφφ√⌡
- ≈Φ±σδ?
-
- [*] ╚±∩εδⁿτ≤Θ≥σ Ωδα±± java.text.NumberFormat.
-
- ╥αΩµσ Γ√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ http://www.newbie.net/sharky/lava/, ΦδΦ
- Φ±∩εδⁿτ≤Θ≥σ ∩αΩσ≥ Cay Horstmann'α
- http://www.horstmann.com/corejava/Format.java
- Hσ±∞ε≥≡ φα ≥ε,≈≥ε ∞φεπε ≡ατδΦ≈φ√⌡ ≤≥ΦδΦ≥ τα Γδ ■≥ ∩εΣΣσ≡µΩ≤ Γ±σ⌡
- Γετ∞εµφε±≥σΘ ⌠≤φΩ÷ΦΦ printf τ√Ωα C, ≥εδⁿΩε Γ√°σ∩≡ΦΓσΣσφφ√σ ∩αΩσ≥√
- Ωε≡≡σΩ≥φε ∩εΣΣσ≡µΦΓα■≥ ²ΩΓΦΓαδσφ≥ %e Γ printf.
-
- *(╫α±≥ⁿ 7) ╩αΩ ∞επ≤ ∩≡ε≈Φ≥α≥ⁿ ≈Φ±δα Γ φα≤≈φε∞ (²Ω±∩εφσφ÷Φαδⁿφε∞)
- ⌠ε≡∞α≥σ?
-
- [*] HΦµσ∩≡ΦΓσΣσφφα ∩≡επ≡α∞∞α, φα∩Φ±αφφα Steve Chapel, Φ±∩εδⁿτ≤σ≥ Ωδα±±
- StreamTokenizer Σδ ≥επε, ≈≥εß√ ∩≡ε≈Φ≥α≥ⁿ Σαφφ√σ Φτ ±≥αφΣα≡≥φεπε ΓΓεΣα Φ
- ≡α±∩ετφα≥ⁿ Γσ∙σ±≥Γσφφ√σ ≈Φ±δα ΣΓεΘφεΘ ≥ε≈φε±≥Φ (double) Γ ²Ω±∩εφσφ÷Φαδⁿφε∞
- ⌠ε≡∞α≥σ (φα∩≡Φ∞σ≡, -1.23e-45).
-
- import java.io.*;
-
- public class ReadExponential {
- public static void main(String argv[]) {
- DataInputStream in = new DataInputStream(System.in);
- StreamTokenizer st = new StreamTokenizer(in);
- try {
- while (st.nextToken() != StreamTokenizer.TT_EOF) {
- switch (st.ttype) {
-
- case StreamTokenizer.TT_NUMBER:
- double num = st.nval;
- int exp = 0;
- st.ordinaryChars('\0', ' ');
- st.nextToken();
- st.whitespaceChars('\0', ' ');
- if (st.ttype == StreamTokenizer.TT_WORD &&
- Character.toUpperCase(st.sval.charAt(0)) == 'E') {
- try {
- exp = Integer.parseInt(st.sval.substring(1));
- } catch (NumberFormatException e) {
- st.pushBack();
- }
- } else if (st.ttype < 0 || st.ttype > ' ')
- st.pushBack();
- System.out.println("Num " + num * Math.pow(10, exp));
- break;
- case StreamTokenizer.TT_WORD:
- System.out.println("Word " + st.sval);
- break;
- default:
- System.out.println("Char '" + (char) st.ttype + "'");
- break;
- } // end switch
- } // end while
- } catch (IOException e) {
- System.out.println("IOException: " + e);
- }
- } // end main
- }
-
-
- *(╫α±≥ⁿ 7) ▀ ∩√≥α■±ⁿ ∩≡ε≈Φ≥α≥ⁿ ±Φ∞Γεδ Φτ ≥σΩ±≥εΓεπε ⌠αΘδα, Φ±∩εδⁿτ≤ ∞σ≥εΣ
- readChar() Ωδα±±α DataInputStream. └ ΩεπΣα ∩√≥α■±ⁿ σπε φα∩σ≈α≥α≥ⁿ,
- ∩εδ≤≈α■ ±Φ∞Γεδ√ '?'.
-
- [*] ╧ε∞φΦ≥σ, ≈≥ε Γ Java Φ±∩εδⁿτ≤■≥± 16-ßΦ≥φ√σ ±Φ∞Γεδ√ Unicode, Γ ≥ε Γ≡σ∞
- ΩαΩ ∞φεπΦσ ±Φ±≥σ∞√ ⌡≡αφ ≥ ±Φ∞Γεδ√ ΩαΩ 8-ßΦ≥φ√σ Γ ΩεΣΦ≡εΓΩσ ASCII. ╥αΩΦ∞
- εß≡ατε∞, ≈≥εß√ ∩≡ε≈Φ≥α≥ⁿ ε≥Σσδⁿφ√σ ±Φ∞Γεδ√ Φτ ≥σΩ±≥εΓεπε ⌠αΘδα, φσεß⌡εΣΦ∞ε
- ≤ßσΣΦ≥ⁿ± Γ ∩≡αΓΦδⁿφεΘ ΩεφΓσ≡≥α÷ΦΦ. ╧≡αΓΦδⁿφε ²≥ε Σσδασ≥± ≥αΩ -
- Φ±∩εδⁿτ≤Θ≥σ InputStreamReader, Ωε≥ε≡√Θ ∩≡σεß≡ατεΓ√Γασ≥ ∩ε≥εΩ Φτ 8-ßΦ≥φεπε Γ
- 16-ßΦ≥φ√Θ:
-
- FileInputStream fis = new FileInputStream("myfile.txt");
- InputStreamReader isr = new InputStreamReader(fis);
-
- char c3 = (char) isr.read();
-
- ─≡≤πεΘ, ∞σφσσ ∩≡σΣ∩ε≈≥Φ≥σδⁿφ√Θ ∩≤≥ⁿ, ±ε±≥εΦ≥ Γ ≥ε∞, ≈≥εß√ ∩≡ε≈Φ≥α≥ⁿ ßαΘ≥ Φ
- ∩≡σεßατεΓα≥ⁿ σπε Γ ±Φ∞Γεδ:
-
- FileInputStream fis = new FileInputStream("myfile.txt");
- DataInputStream dis = new DataInputStream(fis);
- char c1 = (char) dis.readByte();
-
-
- *(╫α±≥ⁿ 7) ╩αΩ ≤ΣαδΦ≥ⁿ ΣΦ≡σΩ≥ε≡Φ■ Γ Java?
-
- [*] JDK 1.0 φσ ∩εΣΣσ≡µΦΓασ≥ ≤ΣαδσφΦσ ΣΦ≡σΩ≥ε≡ΦΘ. JDK 1.1 ∩εΣΣσ≡µΦΓασ≥
- ≤ΣαδσφΦσ ΣΦ≡σΩ≥ε≡ΦΘ ∩≡Φ ∩ε∞ε∙Φ ∞σ≥εΣα public boolean delete() Ωδα±±α
- java.io.File
-
- ╙ßσΣΦ≥σ±ⁿ, ≈≥ε Γ ΣΦ≡σΩ≥ε≡ΦΦ, Ωε≥ε≡≤■ Γ√ ±εßΦ≡ασ≥σ±ⁿ ≤ΣαδΦ≥ⁿ, φσ≥ φΦ εΣφεπε
- ε≥Ω≡√≥επε ∩ε≥εΩα (stream). ┬√∩εδφΦ≥σ Ωε∞αφΣ≤ close() Σδ Γ±σ⌡ ∩ε≥εΩεΓ, Σαµσ
- σ±δΦ ≈Φ≥ασ∞√Θ ⌠αΘδ ταΩεφ≈Φδ± (the underlying file is gone).
-
- *(╫α±≥ⁿ 7) ╩αΩ ∞επ≤ ≤τφα≥ⁿ, ±ΩεδⁿΩε ±ΓεßεΣφε ΣΦ±ΩεΓεπε ∩≡ε±≥≡αφ±≥Γα?
-
- [*] Hα Σαφφ√Θ ∞ε∞σφ≥ φσ ±≤∙σ±≥Γ≤σ≥ ⌡ε≡ε°σπε API (∩≡επ≡α∞∞φεπε Φφ≥σ≡⌠σΘ±α)
- Σδ Φφ±∩σΩ≥Φ≡εΓαφΦ ±Φ±≥σ∞√. ┬ Java φσΓετ∞εµφε Ωεφ≥≡εδΦ≡εΓα≥ⁿ ∩≡ε÷σ±±√ ΦδΦ
- ±∞ε≥≡σ≥ⁿ φα ≡σ±≤≡±√ ±Φ±≥σ∞√. ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ
- Runtime.getRuntime().exec() Σδ Γ√τεΓα "df" Γ ■φΦΩ±σ ΦδΦ "dir" Γ Windows.
-
- ╤ Σ≡≤πεΘ ±≥ε≡εφ√, Γτπδ φΦ≥σ φα JConfig ∩ε αΣ≡σ±≤:
- http://www.tolstoy.com/samizdat/jconfig.html
- JConfig - ²≥ε ∞σµ∩δα≥⌠ε≡∞σφφα ßΦßδΦε≥σΩα, Ωε≥ε≡α τα∩εδφ σ≥ ∞φεπΦσ
- ∩≡ε∞σµ≤≥ΩΦ Γ Java API, Φ Σασ≥ Γετ∞εµφε±≥ⁿ ≡αßε≥α≥ⁿ ± ⌠αΘδα∞Φ, ∩≡ε÷σ±±α∞Φ,
- ∞εφΦ≥ε≡α∞Φ Φ ≥.Σ. Γ ∞αφσ≡σ, φα∩ε∞Φφα■∙σΘ Windows ΦδΦ Mac.
-
- *(╫α±≥ⁿ 7) ╩αΩ ∞επ≤ ∩εδ≤≈Φ≥ⁿ ±∩Φ±εΩ ⌠αΘδεΓ Γ Ωα≥αδεπσ C:\ ?
-
- [*] ╩αµ≤∙ΦΘ± ε≈σΓΦΣφ√∞ ∩εΣ⌡εΣ - Γ√τΓα≥ⁿ File.list("C:\") - φσ ≡αßε≥ασ≥.
- ─δ ²≥επε σ±≥ⁿ ΣΓσ ∩≡Φ≈Φφ√. ┬ε-∩σ≡Γ√⌡, \ (slash) Γδ σ≥± escape-±Φ∞Γεδε∞ Γ
- Java, ≥ε σ±≥ⁿ, σ±δΦ Γα∞ φ≤µσφ ²≥ε≥ ±Φ∞Γεδ, φαΣε φα∩Φ±α≥ⁿ σπε ΣΓαµΣ√.
- ┬ε-Γ≥ε≡√⌡, φσεß⌡εΣΦ∞ε ≤Ωατα≥ⁿ Φ∞ ΣΦ≡σΩ≥ε≡ΦΦ, ≥ε σ±≥ⁿ ≥ε≈Ω≤. ╬ß·σΣΦφΦΓ Γ±σ
- ²≥ε Γ∞σ±≥σ, ≤ΓΦΣΦ∞, ≈≥ε δ■ßεΘ Φτ ±δσΣ≤■∙Φ⌡ Γ√τεΓεΓ ≡αßε≥ασ≥:
-
- File.list("C:\\.");
-
-
- ΦδΦ
-
- File.list("C:/.");
-
-
- ╟α∞σ≈αφΦσ: ≡ατΣσδΦ≥σδⁿ "/" ≡αßε≥ασ≥ ≥ε≈φε ≥αΩ µσ, ΩαΩ Φ "\" Γε ∞φεπΦ⌡
- ∩≡επ≡α∞∞α⌡ Φ ±Φ±≥σ∞φ√⌡ Γ√τεΓα⌡ Windows. ─σδε Γ ≥ε∞, ≈≥ε Γ ∩≡α≡εΣΦ≥σδσ DOS -
- ε∩σ≡α÷ΦεφφεΘ ±Φ±≥σ∞σ CP/M - φσ ß√δε ΣΦ≡σΩ≥ε≡ΦΘ Φ, ±δσΣεΓα≥σδⁿφε,
- ≡ατΣσδΦ≥σδσΘ Γ Φ∞σφα⌡ ⌠αΘδεΓ. ╧≡ ∞εΘ ±δ²° "/" ß√δ ≤µσ ταΣσΘ±≥ΓεΓαφ Σδ
- ∩σ≡σΣα≈Φ ε∩÷ΦΘ Ωε∞αφΣα∞ CP/M; εß≡α≥φ√Θ ±δ²° "\" ±≥αδΦ Φ±∩εδⁿτεΓα≥ⁿ ΩαΩ
- ≡ατΣσδΦ≥σδⁿ ΣΦ≡σΩ≥ε≡ΦΘ Γ Φ∞σφα⌡ ⌠αΘδεΓ, εΣφαΩε εßεδε≈Ωα ∩εφΦ∞ασ≥ Φ "/" Σδ
- ±εΓ∞σ±≥Φ∞ε±≥Φ ± Σ≡≤πΦ∞Φ ε∩σ≡α÷Φεφφ√∞Φ ±Φ±≥σ∞α∞Φ.
-
- *(╫α±≥ⁿ 7) ┬ ≈σ∞ ≡ατφΦ÷α ∞σµΣ≤ ≡ατδΦ≈φ√∞Φ ⌠ε≡∞α≥α∞Φ ZIP: ZIP, GZIPΦ PKZIP?
-
- [*] Zip - ⌠ε≡∞α≥ α≡⌡ΦΓφεπε ⌠αΘδα, ∩ε∩≤δ ≡φ√Θ φα PC, Ωε≥ε≡√Θ ±εΣσ≡µΦ≥
- φσ±ΩεδⁿΩε ±µα≥√⌡ ⌠αΘδεΓ Γφ≤≥≡Φ.
- GZIP - ²≥ε GNU ZIP. ╨σαδⁿφε ²≥ε ∩εΣ∞φεµσ±≥Γε ⌠ε≡∞α≥α ZIP ± εΣφΦ∞ ⌠αΘδε∞
- Γφ≤≥≡Φ. ┬ GZIP φσδⁿτ ∩ε∞σ±≥Φ≥ⁿ ÷σδ≤■ ΣΦ≡σΩ≥ε≡Φ■, α ∞εµφε ≥εδⁿΩε εΣΦφ ⌠αΘδ.
-
- PKZIP - φαßε≡ Ωε∞∞σ≡≈σ±ΩΦ⌡ ∩≡επ≡α∞∞ Σδ ±ετΣαφΦ ⌠αΘδεΓ Zip.
- ┬±σ ≥≡Φ Φ±∩εδⁿτ≤■≥ αδπε≡Φ≥∞ ±µα≥Φ , ε±φεΓαφφ√Θ φα LZ77. ▌≥ε≥ ∞σ≥εΣ ±µα≥Φ
- ≥αΩµσ Φ±∩εδⁿτ≤σ≥± ßΦßδΦε≥σΩεΘ ZLIB Φ, ±δσΣεΓα≥σδⁿφε, π≡α⌠Φ≈σ±ΩΦ∞ ⌠ε≡∞α≥ε∞
- PNG (Ωε≥ε≡√Θ Φ±∩εδⁿτ≤σ≥ ZLIB). PNG - Portable Network Graphics -
- ∩≡σΣε±≥αΓδ σ≥ ±ΓεßεΣφ≤■, φσ τα∙Φ∙σφφ≤■ ΩαΩΦ∞Φ-δΦßε ∩α≥σφ≥α∞Φ, τα∞σφ≤ GIF Φ
- TIFF.
-
- └δⁿ≥σ≡φα≥ΦΓφα ≥σ⌡φεδεπΦ ±µα≥Φ , LZW, τα∙Φ∙σφα ∩α≥σφ≥ε∞ Unisys. LZW
- Φ±∩εδⁿτ≤σ≥± Γ ⌠αΘδα⌡ GIF Φ Γ Ωε∞αφΣσ Unix'α compress. ╩ ±≈α±≥ⁿ■, ß≤Σ≤≈Φ
- ±ΓεßεΣφ√∞ ε≥ ∩α≥σφ≥φ√⌡ ταΓΦ±Φ∞ε±≥σΘ, LZ77 ≥αΩµσ Σασ≥ δ≤≈°σσ ±Σα≥Φσ, ≈σ∞
- LZW. LZW - φα≈αδⁿφ√σ ß≤ΩΓ√ ⌠α∞ΦδΦΘ ≥≡σ⌡ ≤≈σφ√⌡, ≡ατ≡αßε≥αΓ°Φ⌡ αδπε≡Φ≥∞
- (Lempel, Ziv, Welch).
-
- ╬±φεΓφ√σ Ωδα±±√ (εφΦ φα⌡εΣ ≥± Γ java.util.zip), ∩εΣΣσ≡µΦΓα■∙Φσ ⌠ε≡∞α≥ LZ77
- - Deflater Φ Inflater. ╬φΦ Φ±∩εδⁿτ≤■≥± Ωδα±±α∞Φ DeflaterOutputStream Φ
- InflaterInputStream. ┬ ∩αΩσ≥σ java.util.zip σ±≥ⁿ ≥αΩ µσ Ωδα±±√
- GZIPInputStream Φ ZipInputStream, ≤φα±δσΣεΓαφφ√σ ε≥ InflaterInputStream.
-
- PKZIP - Ωε∞∞σ≡≈σ±Ωα ∩≡επ≡α∞∞α Σδ DOS, Windows Φ OS/2, ∩≡εΣαΓασ∞α PKWARE.
-
- ╘αΘδ√ Jar (Java Archive) ⌡≡αφ ≥± Γ ⌠ε≡∞α≥σ ZIP, φε ±≤∙σ±≥Γ≤σ≥ εΣφε ε≥δΦ≈Φσ
- - φσ ±ε⌡≡αφ ■≥± α≥≡Φß≤≥√ ⌠αΘδεΓ. ╚τΓσ±≥φε, ≈≥ε φσΩε≥ε≡√σ Γσ≡±ΦΦ WinZip
- φσ∩≡αΓΦδⁿφε ∩εΣΣσ≡µΦΓα■≥ ∩εδφ√Θ ⌠ε≡∞α≥ ZIP. ╦≤≈°σ Φ±∩εδⁿτεΓα≥ⁿ InfoZIP ΦδΦ
- PKZIP.
-
- *(╫α±≥ⁿ 8) ╤≤∙σ±≥Γ≤■≥ δΦ ∩αΩσ≥√ Γ Java Σδ ≤∩≡αΓδσφΦ HTML?
-
- [*] ╤∞ε≥≡Φ≥σ ε≥Γσ≥ φα ┬ε∩≡ε± 13.14.
-
- *(╫α±≥ⁿ 8) ╧ε≈σ∞≤ Dialogs φσ ≡αßε≥α■≥ ≥αΩ, ΩαΩ ⌡ε≈≤?
-
- [*] ╠εΣαδⁿφ√σ ΣΦαδεπΦ (ΣΦαδεπεΓ√σ εΩφα, ∩≡Φ±≤≥Γ≤■∙Φσ ∩εΩα φα φΦ⌡ φσ
- ∙σδΩφ≤≥ⁿ) ∩≡ε Γδ ■≥ πδ■ΩαΓε±≥ⁿ Γε ∞φεπΦ⌡ ß≡α≤τσ≡α⌡ Φ Γ JDK 1.0.2. ╬ΣΦφ Φτ
- ßαπεΓ ²≥ε ΩεπΣα ΣΦαδεπ φσ ±≥αφεΓΦ≥± αΩ≥ΦΓφ√∞ εΩφε∞, ∩≡Φ Γ√ΓεΣσ φσ ²Ω≡αφ.
- ╠φεπΦσ Φτ ßαπεΓ Φ±∩≡αΓδσφ√ Γ JDK 1.1.
-
- (╫α±≥ⁿ 8) ├Σσ ∞επ≤ ∩εδ≤≈Φ≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε Ωδα±±α⌡ sun.* Γ JDK?
-
- [ ] ▌≥Φ Ωδα±±√ ∩εΣΣσ≡µΦΓα■≥ ≥εδⁿΩε ⌠≤φΩ÷ΦΦ Γ java.* Φσ≡α≡⌡ΦΦ. ╬φΦ φσ
- Γδ ■≥± ≈α±≥ⁿ■ API, Φ φσ ß≤Σ≤≥ ≡αßε≥α≥ⁿ Γ Java ±Φ±≥σ∞α⌡ ε≥ ∩ε±≥αΓ∙ΦΩεΓ φσ
- Sun. HσΩε≥ε≡√σ δ■ΣΦ Φτ∞σφ δΦ ΩεΣ Φ ε∩≤ßδΦΩεΓ√ΓαδΦ API Σδ ≡αßε≥√ ± ²≥Φ∞Φ
- Ωδα±±α∞Φ, φε Γ√ ß≤Σσ≥σ Φ±∩εδⁿτεΓα≥ⁿ Φ⌡ φα ±ΓεΘ ≡Φ±Ω, Φ ²≥ε ∞εµσ≥ Φ±∩ε≡≥Φ≥ⁿ
- ≈≥ε-δΦßε ßστ ∩≡σΣ≤∩≡σµΣσφΦ .
-
- ╧δε⌡ε, ≈≥ε ²≥Φ ∩≡επ≡α∞∞√ φσ ß√δΦ ∩σ≡σφσ±σφ√ φα εß√≈φ≤■ Java Φ ß≤Σ≤≥
- ≡αßε≥α≥ⁿ ≥εδⁿΩε φα JDK ε≥ Sun. ╧ε ²≥εΘ ∩≡Φ≈Φφσ ∞√ φσ ≡σΩΩε∞σφΣ≤σ∞
- Φ±∩εδⁿτεΓα≥ⁿ Ωδα±±√ Γφσ java.* ΩεπΣα Γ√ Φ±∩εδⁿτ≤σ≥σ JDK ε≥ Σ≡≤πΦ⌡ ⌠Φ≡∞.
-
- ┼±δΦ Γ√ Γ±σ-µσ φα±≥αΦΓασ≥σ φα ≥ε∞, ≈≥ε ß√ Φ⌡ Φ±∩εδⁿτεΓα≥ⁿ, ∞εµσ≥σ
- ∩ε±∞ε≥≡σ≥ⁿ τΣσ±ⁿ:
- http://java.sun.com/products/api-overview/index.html
- http://www.parmly.luc.edu/javaudio/
- http://www.users.interport.net/~mash/javamidi.html
-
- *(╫α±≥ⁿ 8) ╩αΩ ∩≡ε≈Φ≥α≥ⁿ τφα≈σφΦ ∩σ≡σ∞σφφ√⌡ ╬╤ Φ±∩εδⁿτ≤ ∩≡επ≡α∞∞≤ φα
- Java?
-
- [*] ╧σ≡σ∞σφφ√σ εΩ≡≤µσφΦ ±Φ±≥σ∞√ φσ Φ±∩εδⁿτ≤■≥± Γ Java, ≥αΩ ΩαΩ εφΦ
- ταΓΦ± ≥ ε≥ ∩δα≥⌠ε≡∞√. Mac-±Φ±≥σ∞√ Γεεß∙σ φσ Φ∞σ■≥ ≥αΩΦ⌡ ∩σ≡σ∞σφφ√⌡,
- φα∩≡Φ∞σ≡. ╙ ∩≡ΦδεµσφΦΘ Windows 95 φσ τα∩≤±Ωα■∙Φ⌡± Φτ εΩφα DOS φσ≥
- ∩σ≡σ∞σφφ√⌡ εΩ≡≤µσφΦ . ╚±∩εδⁿτ≤Θ≥σ ε∩÷ΦΦ Γ∞σ±≥ε φΦ⌡. ┬ JDK 1.0 ß√δα Σε∩≤∙σφα
- ε°ΦßΩα, Φτ-τα Ωε≥ε≡εΘ ∩≡επ≡α∞∞Φ±≥α∞ ±α∞Φ∞ ∩≡Φ⌡εΣΦδε±ⁿ ≤±≥αφαΓδΦΓα≥ⁿ
- τφα≈σφΦσ ∩σ≡σ ∞σφφεΘ CLASSPATH. ▌≥ε τφα≈σφΦσ Σεδµφε ß√≥ⁿ ≤±≥αφεΓδσφε Γ
- ⌠αΘδσ ±ΓεΘ±≥Γ.
-
- ╤ετΣαΘ≥σ Γα° ±εß±≥Γσφφ√Θ ⌠αΘδ ±ΓεΘ±≥Γ(±∞. java.util.Properties) ΦδΦ ≤ΩαµΦ
- ≥σ ε∩÷ΦσΘ -D ΩεπΣα Γ√ τα∩≤±Ωασ≥σ Φφ≥σ≡∩≡σ≥α≥ε≡ ΦδΦ JRE. ─ε∩εδφΦ≥σδⁿφε φα
- φσΩε≥ε≡√⌡ ±Φ±≥σ∞α⌡ Γ√ ∞εµσ≥σ ≤±≥αφεΓΦ≥ⁿ τφα≈σφΦσ Φτ Ωε∞∞αφΣφεΘ ±≥≡εΩΦ,
- φα∩≡Φ∞σ≡:
-
- java -Dfoo=$foo MyClass (Unix)
-
- ΦδΦ
-
- java -Dfoo=%foo% MyClass (Win95/NT)
-
- ▌≥ε ≤±≥αφεΓΦ≥ τφα≈σφΦσ "foo" Γ τφα≈σφΦσ ∩σ≡σ∞σφφεΘ εΩ≡≤µσφΦ foo, Φ ±Σσδασ≥
- ²≥ε Σε±≥≤∩φ√∞ Γ ε∩÷Φ ⌡ System. ╤δσΣΦ≥σ τα ≥σ∞, ≈≥εß√ φσ ß√δε ∩≡εßσδεΓ ∩ε±δσ
- -D ΦδΦ ΓεΩ≡≤π τφαΩα ≡αΓσφ±≥Γα("=") ┬φ≤≥≡Φ ∩≡επ≡α∞∞√ Γ√ ∩εδ≤≈Φ≥σ τφα≈σφΦσ
- ∩σ≡σ∞σφφεΘ foo ≥αΩΦ∞ εß≡ατε∞:
-
- String env = System.getProperty("foo");
-
- ╠εµφε ∩ε±≥≤∩Φ≥ⁿ ßεδσσ ∩≡ε±≥ε, φα∩Φ±αΓ τφα≈σφΦσ Σδ foo Γ Ωε∞∞αφΣφεΘ ±≥≡εΩσ
- Φ ∩≡ε≈Φ≥αΓ σσ ΩαΩ arg[0].
-
- java MyClass %FOO% ; Win32
- java MyClass $FOO ; Unix
-
-
- HαΩεφσ÷, Γ√ ∞εµσ≥σ τα∩≤±≥Φ≥ⁿ Runtime ∩≡ε÷σ±± Σδ ∩εδ≤≈σφΦ ∩σ≡σ∞σφφεΘ
- εΩ≡≤µσφΦ , σ±δΦ Γ√ Φ±∩εδⁿτ≤σ≥σ ∩δα≥⌠ε≡∞≤, Σε∩≤±Ωα■∙≤■ ²≥ε.
-
- import java.io.*;
- import java.util.Properties;
-
- public class Main {
- public static void main(String[] argv) {
- Properties envVars = new Properties();
-
- try {
- envVars.load( // Φ±∩εδⁿτ≤Θ≥σ "set" Γ Windows
- Runtime.getRuntime().exec("/bin/env").getInputStream());
- } catch (Throwable t) {t.printStackTrace();}
-
- System.out.println("\n\n"+argv[0]+" = <"+envVars.get(argv[0])+">");
- }
- }
-
- ▌≥ε φσ εß√≈φ√Θ ∩εΣ⌡εΣ Ω Java Φ ²≥ε ∩ε±≥≡εΦ≥± , Γ ταΓΦ±Φ∞ε±≥Φ ε≥ ∩δα≥⌠ε≡∞√,
- Ωε≥ε≡≤■ Γ√ Φ±∩εδⁿτ≤σ≥σ. ╤∞ε≥≡Φ≥σ ┬ε∩≡ε± 10.6 Σδ Σσ≥αδσΘ. ┬ Unix, Ωε∞∞αφΣα
- Γ√ΓεΣ ∙α ∩σ≡σ∞σφφ√σ ╬╤ ²≥ε "/usr/bin/env". ┬ Windows 95, ²≥ε "set".
-
- *(╫α±≥ⁿ 8) ╩αΩ ∞εµφε ±Γ τα≥ⁿ Java ± ßατεΘ Σαφφ√⌡ Microsoft Access?
-
- [*] ╚±∩εδⁿτ≤Θ≥σ JDBC-ODBC ∞ε±≥. ▌≥ε φσ ±δΦ°Ωε∞ ≥≡≤Σφε Γ ≤±≥αφεΓΩσ, φε ²≥ε
- ≥≡σß≤σ≥ ε±εßσφφεπε ΓφΦ∞αφΦ Ω Σσ≥ δ ∞. ╠√ ∩≡σΣδαπασ∞ ∩≡Φ∞σ≡ "°απ-τα-°απε∞"
- Φτ ≥σΩ±≥α ╦ΦφΣσφ(van der Linden) "╧≡ε±≥ε Java" ≤∩ε∞ φ≤≥ε∞ Γ ≡ατΣσδσ
- ±ετΣα≥σδσΘ ²≥επε ΣεΩ≤∞σφ≥α.
-
- ╟α∞σ≥ⁿ≥σ, ≈≥ε Γσ≡±Φ JDK ε≥ Microsoft φσ ∩εΣΣσ≡µΦΓασ≥ JDBC-ODBC Σε±≥≤∩,
- Φτ-τα φσ±≥αφΣα≡≥φεπε Φφ≥σ≡⌠σΘ±α.
- JDBC FAQ ∞εµφε φαΘ≥Φ φα
- http://java.sun.com/products/jdbc/jdbc-frequent.html
-
- *(╫α±≥ⁿ 8) ▀ φσ ∞επ≤ ±∞σφΦ≥ⁿ ≥σΩ≤∙≤■ ≡αßε≈≤■ ΣΦ≡σΩ≥ε≡Φ■, φσ ≥αΩ-δΦ?.
-
- [*] ┬±σ Γσ≡φε. ▌≥ε ≤∩≤∙σφφα Γετ∞εµφε±≥ⁿ Γδ σ≥± φσΣε±∞ε≥≡ε∞, Ωε≥ε≡√Θ ∞√
- φαΣσσ∞± Φ±∩≡αΓΦ≥ⁿ Γ ß≤Σ≤∙σ∞. ID ²≥επε ßαπα 4156278, ∩εµαδ≤Θ±≥α
- ∩≡Φ±εσΣΦφ Θ≥σ±ⁿ Ω JDC, Φ πεδε±≤Θ≥σ, ≈≥εß√ Φ±∩≡αΓΦ≥ⁿ ²≥ε(Φ ε±≥αδⁿφεσ).
- ╚τ∞σφσφΦσ ε∩÷ΦΦ user.dir ∩≡ε±≥ε Φτ∞σφΦ≥ ≥σΩ±≥εΓεσ τφα≈σφΦσ, φσ Γε∩δε∙α
- Φτ∞σφσφΦ Γ µΦτφⁿ.
-
- ╤≤∙σ±≥Γ≤■≥ φσ±ΩεδⁿΩε εß⌡εΣεΓ ²≥επε.
-
- * ╟α∩≤±≥Φ≥σ Γα°σ ∩≡ΦδεµσφΦσ java ΩαΩ .bat ΦδΦ .sh ⌠αΘδ Φ ±ΣσδαΘ≥σ "cd" Γ
- φσ∞(∩σ≡σΣ τα∩≤±Ωε∞, ≡ατ≤∞σσ≥± ), σ±δΦ Γ√ ≤Γσ≡σφ√ Γ ≥ε∞, ≈≥ε Γ±σ
- Γφσ°φΦσ ∩≡ε÷σ±±√, τα∩≤±Ωασ∞√σ Γα°σΘ ∩≡επ≡α∞∞εΘ ∞επ≤≥ ß√≥ⁿ τα∩≤∙σφ√ Φτ
- ²≥εΘ ΣΦ≡σΩ≥ε≡ΦΦ.
- * ╤ΣσδαΘ≥σ: exec("cd /home/wherever; externalApp.exe") Γ Unix, (²≥ε∞≤,
- Ωαµσ≥± , φσ≥ ²ΩΓΦΓαδσφ≥α φα NT).
- * ┬∞σ±≥ε τα∩≤±Ωα .exe φα∩≡ ∞≤■, τα∩≤±ΩαΘ≥σ (ΦδΦ τα∩Φ±√ΓαΘ≥σ φα δσ≥≤)
- .bat ΦδΦ .sh ⌠αΘδ, Ωε≥ε≡√Θ Σσδασ≥ cd Φ τα≥σ∞ τα∩≤±Ωασ≥ Γα° .exe (²≥ε
- ∞εµσ≥ ±ετΣα≥ⁿ ∩≡εßδσ∞≤ ± ΓετΓ≡α∙σφΦσ∞ εß≡α≥φε Γσ≡φεπε ±ε±≥ε φΦ ).
-
- *(╫α±≥ⁿ 8) ╩αΩ ∞φσ ±ετΣα≥ⁿ ΓσΩ≥ε≡ ≈Φ±δα?
-
- [*] ╫Φ±δα ²≥ε εß√≈φ√σ ≥Φ∩√ Φ ±δσΣεΓα≥σδⁿφε φσ ∞επ≤≥ ≤∩≡αΓδ ≥ⁿ± ΓσΩ≥ε≡φ√∞
- Ωδα±±ε∞, Ωε≥ε≡√Θ ±εΣσ≡µΦ≥ εß·σΩ≥√, Γα∞ ∩≡ΦΣσ≥± ε≥Ωε≡≡σΩ≥Φ≡εΓα≥ⁿ ≈Φ±δα.
- ╧ε∩≡εß≤Θ≥σ ²≥ε:
-
- int i =7;
- Vector holdsInts = new Vector(5,1);
-
- holdsInts.addElement(new Integer(i));
- int j = ((Integer)holdsInts.elementAt(0)).intValue();
-
-
- *(╫α±≥ⁿ 8) ╙ ∞σφ σ±≥ⁿ φσ±ΩεδⁿΩε ≡αßε≈Φ⌡ φΦ≥σΘ. ▀ ⌡ε≈≤, ≈≥εß√ ∞ε πδαΓφα
- φΦ≥ⁿ εµΦΣαδα, ∩εΩα ε±≥αδⁿφ√σ ταΩεφ≈α≥ ≡αßε≥≤, Φ ΣσΘ±≥ΓΦσ φα≈φσ≥± φα±≥εδⁿΩε
- ±Ωε≡ε, φα±ΩεδⁿΩε εφΦ Γ±σ ταΩεφ≈α≥ ≡αßε≥≤. ▀ φσ τφα■, ΩαΩα Φτ φΦ≥σΘ
- ταΩεφ≈Φ≥ ≡αßε≥≤ ≡αφⁿ°σ ε±≥αδⁿφ√⌡, ∩ε²≥ε∞≤ φσ Φεπ≤ Γ√τΓα≥ⁿ Thread.join φα
- ²≥εΘ φΦ≥Φ. ╩αΩ ∞φσ ß√≥ⁿ?
-
- [*] ┬α∞ φαΣε Φ±∩εδⁿτεΓα≥ⁿ ∞σ⌡αφΦτ∞ εµΦΣαφΦσ/±εεß∙σφΦσ, ≈≥εß√ ∩ετΓεδΦ≥ⁿ
- δ■ßεΘ Φτ ≡αßε≈Φ⌡ φΦ≥σΘ ≡ατß≤ΣΦ≥ⁿ Γα°≤ πδαΓφ≤■ φΦ≥ⁿ, ΩεπΣα ∩σ≡Γα ταΩεφ≈Φ≥
- ≡αßε≥≤.
-
- *(╫α±≥ⁿ 8) ╩αΩ ∞φσ ∩εδ≤≈Φ≥ⁿ ±δ≤≈αΘφ√σ ≈Φ±δα?
-
- [*] ┼±δΦ Γα∞ φ≤µφε ß√±≥≡ε φαΘ≥Φ φσßεδⁿ°εσ ±δ≤≈αΘφεσ ≈Φ±δε ε≥ 0.0 Φ Σε 1.0
-
- double myrandom = Math.random(); // [0,1)
-
-
- ╤Φ±≥σ∞α εßετφα≈σφΦ "[0,1)" ²≥ε εß√≈φεσ ∞α≥σ∞α≥Φ≈σ±Ωεσ Γα≡αµσφΦσ Σδ "ε≥
- φ≤δ Σε .9999999 Φ ≥.∩." ╬∩Φ±αφΦ ε≥ Sun πεΓε≡ ≥, ≈≥ε ²≥ε ΓετΓ≡α∙ασ≥
- τφα≈σφΦσ ε≥ 0 Σε 1, φε Φ±±δσΣεΓαφΦσ Φ±⌡εΣφ√⌡ ΩεΣεΓ ∩εΩατ√Γασ≥, ≈≥ε εφΦ
- ε°Φßα■≥± . ╬ΣφαΩε, ±δσΣ≤σ∞√σ τα ∩≡Φ±≤∙Φ∞Φ α≡Φ⌠∞σ≥Φ≈σ±ΩεΘ ∩δαΓα■∙σΘ ≥ε≈Ωσ
- φσ≥ε≈φε±≥ ∞Φ, ±δ≤≈αΘφ√Θ Γ√ßε≡ N Σε 0.999999 ∞εµσ≥ ∩≡ΦΓσ±≥Φ Ω ε°ΦßΩσ.
-
- ┬ JDK 1.2 Γ⌡εΣΦ≥ Σ≡≤πα Γσ≡±Φ nextInt, Ωε≥ε≡α ∩ετΓεδΦ≥ ßεδσσ ≥ε≈φε Φ
- ßστε°Φßε≈φε ΓετΓ≡α∙α≥ⁿ ±δ≤≈αΘφ√σ ≈Φ±δα, ταΣαφφεπε Φφ≥σ≡Γαδα.
-
- ╤≤∙σ±≥Γ≤σ≥ φσßεδⁿ°α ⌡Φ≥≡ε±≥ⁿ σ±δΦ Γ√ Φ±∩εδⁿτ≤σ≥σ JDK 1.1, Φ Γα∞ φαΣε
- ∩εδ≤≈Φ≥ⁿ int Γ ε∩≡σΣσδσφφε∞ Φφ≥σ≡Γαδσ. ─ε∩≤±≥Φ∞, Γ Φφ≥σ≡Γαδσ ε≥ 1 Σε 6,
- ≈≥εß√ ±²∞≤δΦ≡εΓα≥ⁿ ß≡ε±εΩ Ωε±≥σΘ ΦδΦ ε≥ 1 Σε 52 ≈≥εß√ ∩≡σΣ±≥αΓΦ≥ⁿ Φπ≡αδⁿφ√σ
- Ωα≡≥√. ╩δα±± Random Φ∞σσ≥ ∞σ≥εΣ nextInt, Ωε≥ε≡√Θ Γετ≡α≥Φ≥ δ■ßεσ ≈Φ±δε.
-
- import java.util.Random;
- Random r = new Random();
- int i = r.nextInt();
-
-
- ╬ΣφαΩε, σ±≥ⁿ ∩ε≈≥Φ 50% φα ≥ε, ≈≥ε ²≥ε ≈Φ±δε εΩαµσ≥± φσ Φτ ∩≡αΓΦδⁿφεπε
- Φφ≥σ≡Γαδα. ╥αΩ, Γ√ ∩≡ε±≥ε ∩εδ≤≈Φ≥σ τφα≈σφΦσ abs() Φ τα≥σ∞ ≡ατΣσδΦ≥σ σπε φα
- Γσ≡⌡φ■■ π≡αφΦ÷≤ Φφ≥σ≡Γαδα.
-
- int dice_throw = 1 + Math.abs(i) % 6;
-
-
- ╚±Ωδ■≈σφΦσ∞ Γδ σ≥± ≥ε, ≈≥ε ∞σ≥εΣ abs() π≡≤ßε ε°Φßασ≥± Γ ∩≡Φ±≤≥±≥ΓΦΦ
- Integer.MIN_VALUE (²≥ε ≥εµσ Γετ≡α∙ασ≥ ε≥≡Φ÷α≥σδⁿφ√Θ ≡στ≤δⁿ≥α≥!). ╧ε²≥ε∞≤,
- δ≤≈°σ Γ√∩εδφΦ≥ⁿ δεπΦ≈σ±Ωεσ ≤∞φεµσφΦσ(and) Σδ Σε±≥ΦµσφΦ Γσ≡φ√⌡ τφα≈σφΦΘ -
- ∩≡Φ ∩εδ≤≈σφΦΦ ≈Φ±δα ∞σµΣ≤ ε∩≡σΣσδσφφ√∞Φ Γ√±°Φ∞ Φ φΦτ°Φ∞ τφα≈σφΦ ∞Φ
- Φφ≥σ≡Γαδα (ΓΩδ■≈Φ≥σδⁿφε):
-
- java.util.Random r = new java.util.Random();
- int j = (r.nextInt() & Integer.MAX_VALUE) % (high-low+1) + low;
-
-
- ▌≥ε ≡σ°σφΦσ ±≡αßε≥ασ≥ Ωε≡≡σΩ≥φε "(∩ε≈≥Φ) Γ 50% ±δ≤≈ασΓ" ∩ε≥ε∞≤ ≈≥ε
- ±≤∙σ±≥Γ≤σ≥ φα εΣφε τφα≈σφΦσ ßεδⁿ°σ Γ ε≥≡Φ÷α≥σδⁿφ√⌡ ≈Φ±δα⌡, ≈σ∞ Γ
- ∩εδεµΦ≥σδⁿφ√⌡ Γ α≡Φ⌠∞σ≥Φ≈σ±ΩΦ⌡ Ωε∞δσΩ≥α⌡, ΩαΩΦσ Φ±∩εδⁿτ≤σ≥ Java. ─δ
- ßεδⁿ°Φφ±≥Γα ÷σδσΘ, ²≥ε ∩≡σΣ≤ßσµΣσφΦσ ß≤Σσ≥ φστφα≈Φ≥σδⁿφ√∞, α ∞√ "Φ"
- nextInt() ±ΓεΣΦ∞ Φ⌡ Ω φ≤δ■. ╩εφσ≈φε, ²≥ε ∞αδεΓσ≡ε ≥φε, ≈≥ε Γα∞ Γ±≥≡σ≥Φ≥±
- ²≥α ε°ΦßΩα, φε Γ√ µσ φσ ⌡ε≥Φ≥σ Φ∞σ≥ⁿ Ω≡Φ≥Φ≈σ±Ω≤■ ±Φ≥≤α÷Φ■, ≥εδⁿΩε Φτ-τα
- ≥επε, ≈≥ε ≤∩≤±≥ΦδΦ ²≥ε≥ ±δ≤≈αΘ ∩≡Φ ≥σ±≥Φ≡εΓαφΦΦ ±Γεσπε ∩≡ΦδεµσφΦ .
-
- Hσ∩≡Φ ≥φα ∩≡εßδσ∞α ²≥ε ≥ε, ≈≥ε ± ≥αΩΦ∞ αδπε≡Φ≥∞ε∞, ∞δαΣ°Φσ ßΦ≥√ ∩ε∩αΣα■≥±
- ≡σµσ, ≈σ∞ ±≥α≡°Φσ, ∩≡Φ ±δ≤≈αΘφε∞ Γ√ßε≡σ. ╧≡Φ≈Φφα Γ ≥ε∞, ≈≥ε ∩≡Φ ε∩σ≡α÷ΦΦ
- ΣσδσφΦ (mod 2^n) ∞δαΣ°Φσ ßΦ≥√ "∩≡ε∩αΣα■≥" ≈α∙σ, ≈σ∞ ±≥α≡°Φσ. ╠εµφε
- ∩≡σΣ∩εδεµΦ≥ⁿ, ≈≥ε Φ±∩εδⁿτ≤ java.security.SecureRandom, ∩εδ≤≈Φ≥± ßεδσσ
- ßεδⁿ°α ≡ατß≡ε±αφφε±≥ⁿ ±δ≤≈αΘφ√⌡ ≈Φ±σδ, ≥αΩ ΩαΩ ²≥ε Φ±∩εδⁿτ≤σ≥
- "╩≡Φ∩≥επ≡α⌠Φ≈σ±Ω≤■ ≡ατß≡ε±αφφε±≥ⁿ" (Cryptograpic hash), φε ²≥ε ≥αΩµσ
- ∩ε≥≡σß≤σ≥ ßεδσσ εß·σ∞φ√⌡ Γ√≈Φ±δσφΦΘ ε≥ Ωε∞∩ⁿ■≥σ≡α.
-
- *(╫α±≥ⁿ 9) ╩αΩΦσ Φτ∞σφσφΦ ∩≡εΦτε°δΦ ± java.util.Date ∩≡Φ ∩σ≡σ⌡εΣσ ε≥ JDK
- 1.0 Ω JDK 1.1?
-
- [*] ┬ JDK 1.1 Ωδα±± java.util.Date ß√δ ≡ατΣσδσφ Σδ ≥επε, ≈≥εß√
- εßσ±∩σ≈ΦΓα≥ⁿ δ≤≈°≤■ ∩εΣΣσ≡µΩ≤ Γ≡σ∞σφφ√⌡ τεφ Φ Φφ≥σ≡φα÷Φεφαδⁿφ√⌡ ±ΓεΘ±≥Γ.
-
- ╩δα±±√, ε≥φε± ∙Φσ± Ω Σα≥α∞, Γ√∩Φ±αφ√ φΦµσ:
-
- 1. ╩δα±± Date ∩≡σΣ±≥αΓδ σ≥ ε∩≡σΣσδσφφ√Θ ∞ε∞σφ≥ Γ≡σ∞σφΦ, ±
- ≥ε≈φε±≥ⁿ■ Σε ∞ΦδδΦ±σΩ≤φΣ√.
- 2. ╩δα±± TimeZone ²≥ε αß±≥≡αΩ≥φ√Θ Ωδα±±, Ωε≥ε≡√Θ ∩≡σΣ±≥αΓδ σ≥
- ±∞σ∙σφΦσ ≈α±εΓεπε ∩ε ±α, α ≥αΩµσ Γ√≈Φ±δ σ≥ ∩ε∩≡αΓΩ≤ ∩≡Φ
- ∩σ≡σ⌡εΣσ φα δσ≥φσσ Γ≡σ∞ .
- 3. ╩δα±± SimpleTimeZone ²≥ε σΣΦφ±≥Γσφφ√Θ φσ∩ε±≡σΣ±≥Γσφφ√Θ
- ∩εΣΩδα±± Ωδα±±α TimeZone Γ JDK. ┬±σ ≈≥ε εφ ε∩≡σΣσδ σ≥, ²≥ε
- εß√≈φ√Θ ≈α±εΓεΘ ∩ε ± ± ∩≡ε±≥√∞ ∩σ≡σ⌡εΣε∞ φα δσ≥φσσ Γ≡σ∞ Φ
- ∩σ≡ΦεΣε∞ (²≥επε ∩σ≡σ⌡εΣα).
- 4. ╩δα±± Calendar ²≥ε αß±≥≡αΩ≥φ√Θ Ωδα±± Σδ ΩεφΓσ≡≥Φ≡εΓαφΦ
- εß·σΩ≥α Date Γ φαßε≡ ÷σδ√⌡ ≈Φ±σδ, ≥αΩΦ⌡ ΩαΩ πεΣ, ∞σ± ÷, Σσφⁿ
- Φ ≈α± (Φ εß≡α≥φε).
- 5. ╩δα±± GregorianCalendar ²≥ε σΣΦφ±≥Γσφφ√Θ φσ∩ε±≡σΣ±≥Γσφφ√Θ
- ∩εΣΩδα±± Ωδα±±α Calendar Γ JDK. ╬φ ∩≡εΦτΓεΣΦ≥ ∩≡σεß≡ατεΓαφΦ
- Φτ Ωδα±±α Σα≥√ Γ ÷σδ√σ ≈Φ±δα (Date-to-fields) Σδ
- εß∙σ≤∩ε≥≡σßΦ≥σδⁿφεΘ ΩαδσφΣα≡φεΘ ±Φ±≥σ∞√.
- 6. ╩δα±± DateFormat ²≥ε αß±≥≡αΩ≥φ√Θ Ωδα±±, Ωε≥ε≡√Θ ∩ετΓεδ σ≥
- ┬α∞ ΩεφΓσ≡≥Φ≡εΓα≥ⁿ Ωδα±± Date Γ ∩σ≈α≥ασ∞≤■ ±≥≡εΩ≤ ± ∩εδ ∞Φ
- ταΣαφφεπε ΓΦΣα (φα∩≡Φ∞σ≡ dd/mm/yy ΦδΦ dd.MMM.yyyy).
- 7. ╩δα±± SimpleDateFormat ²≥ε σΣΦφ±≥Γσφφ√Θ φσ∩ε±≡σΣ±≥Γσφφ√Θ
- ∩εΣΩδα±± Ωδα±±α DateFormat Γ JDK. ╬φ ßσ≡σ≥ ±≥≡εΩ≤ ⌠ε≡∞α≥α Φ
- δΦßε ≡ατßΦ≡ασ≥ ±≥≡εΩ≤, ≈≥εß√ ∩εδ≤≈Φ≥ⁿ Σα≥≤, δΦßε ßσ≡σ≥ Σα≥≤
- Φ ∩εδ≤≈ασ≥ ±≥≡εΩ≤.
-
- ╧ε Ω≡αΘφσΘ ∞σ≡σ εΣΦφ Ω≡Φ≥ΦΩ ≤∩ε≥≡σßΦδ ≥σ≡∞Φφ "∩≡Φ≈≤ΣδΦΓα ", ΩεπΣα ε∩Φ±√Γαδ
- ±δεµφε±≥ⁿ ±Γ ταφφ√⌡ Ωδα±±εΓ Σα≥√ Γ Java, ⌡ε≥ ε±≥αδⁿφ√σ ±ΩαταδΦ ß√
- "δε∞αφα ". ╒ε≡ε°σΘ φεΓε±≥ⁿ■ Γδ σ≥± ≥ε, ≈≥ε Γ JDK 1.2 Γ±σ εß∙Φσ ∩≡εßδσ∞√
- ß√δΦ ≡σ°σφ√, Φ ∞φεµσ±≥Γε ε°ΦßεΩ ß√δε Φ±∩≡αΓδσφε Γ 1.1.4 Φ 1.1.6. ─αµσ Γ
- 1.1.1 ┬√ ∞εµσ≥σ Φτßσµα≥ⁿ ßεδⁿ°Φφ±≥Γα φαΦßεδσσ ≡α±∩ε±≥≡αφσφφ√⌡ ε°ΦßεΩ,
- Γ±σπΣα Φ∞σ Γ ΓΦΣ≤, ΩαΩ≤■ Γ≡σ∞σφφ≤■ τεφ≤ Φ±∩εδⁿτ≤σ≥ ΩαµΣ√Θ Ωδα±±.
-
- *(╫α±≥ⁿ 9) ╫≥ε µσ Γ ≥ε≈φε±≥Φ ∩≡σΣ±≥αΓδ σ≥ Φτ ±σß java.util.Date?
-
- [*] ╩δα±± java.util.Date ⌡≡αφΦ≥ ∞ε∞σφ≥ Γ≡σ∞σφΦ, ΩαΩ ΣδΦφφεσ ÷σδεσ (long
- integer), Ωε≥ε≡εσ ∩≡σΣ±≥αΓδ σ≥ Φτ ±σß ≈Φ±δε ∞ΦδδΦ±σΩ≤φΣ, ∩≡ε°σΣ°Φ⌡
- ± 00:00:00 Jan 1, 1970 UTC (Coordinated Universal Time). ▌≥ε≥ ∞ε∞σφ≥
- ε≥±≈σ≥α ΦτΓσ±≥σφ ΩαΩ "Epoch" ("▌∩ε⌡α"). ▌≥ε ≥ε≥ µσ ∞ε∞σφ≥ ε≥±≈σ≥α (Epoch),
- Ωε≥ε≡√Θ Φ±∩εδⁿτ≤σ≥± Γ ±Φ±≥σ∞α⌡ UNIX. ┴εδσσ ≡αφφΦσ Σα≥√, ≈σ∞ Epoch,
- ∩≡σΣ±≥αΓδσφ√ Γ ΓΦΣσ ε≥Φ÷α≥σδⁿφ√⌡ ≈Φ±σδ, ε≥±≈Φ≥√Γασ∞√⌡ ε≥ 1/1/1970.
-
- ▌≥εΘ ±⌡σ∞√ Σε±≥α≥ε≈φε, ≈≥εß√ ∩≡σΣ±≥αΓδ ≥ⁿ Σα≥√ ε≥ 292,269,053 B.C. (Σε
- φα°σΘ ²≡√) Σε 292,272,993 A.D. (φα°σΘ ²≡√) (64 ßΦ≥α ∩εΩ≡√Γα■≥ ΣΦα∩ατεφ ε≥
- -9,223,372,036,854,775,808 Σε +9,223,372,036,854,775,807 ∞ΦδδΦ±σΩ≤φΣ).
- ╟α∞σ≥ⁿ≥σ, ≈≥ε Γσ≡±ΦΦ, ∩≡σΣ°σ±≥Γ≤■∙Φσ JDK 1.2, GregorianCalendar φσ ∞επ≤≥
- ∩≡ΦφΦ∞α≥ⁿ τφα≈σφΦ ≡αφⁿ°σ, ≈σ∞ 4716 B.C.
-
- ╩δα±± java.util.Date ²≥ε δσπΩεΓσ±φα (light-weight) Ωεφ±≥≡≤Ω÷Φ ,
- ∩≡σΣφατφα≈σφφα ≥εδⁿΩε Σδ ⌡≡αφσφΦ τφα≈σφΦ ∞ΦδδΦ±σΩ≤φΣ. ╬φ Φ±∩εδⁿτ≤σ≥±
- Σδ ⌡≡αφσφΦ Φ ∩σ≡σΣα≈Φ ∞ε∞σφ≥α Γ≡σ∞σφΦ. ─≡≤πΦσ ταΣα≈Φ, ≥αΩΦσ ΩαΩ ±ετΣαφΦσ
- ⌠ε≡∞α≥Φ≡εΓαφφεΘ ±≥≡εΩΦ, Γ√≈Φ±δσφΦσ Σα≥, ≡σαδΦτεΓαφ√ Γ Σ≡≤πΦ⌡ Ωδα±±α⌡.
-
- *(╫α±≥ⁿ 9) ╧≡σΣ±≥αΓδ σ≥ δΦ Ωδα±± java.util.Date Γσ≡φεσ τφα≈σφΦσ UTC?
-
- [*] Hσ≥, φε σπε ±Γσ≡°σφφε Σε±≥α≥ε≈φε Σδ ßεδⁿ°Φφ±≥Γα ∩εδⁿτεΓα≥σδⁿ±ΩΦ⌡
- ταΣα≈, ≡αßε≥■∙Φ⌡ ± Γ≡σ∞σφσ∞ (time-keeping). Hα ßεδⁿ°Φφ±≥Γσ Ωε∞∩ⁿ■≥σ≡εΓ εφ
- ∩≡σΣ±≥αΓδ σ≥ ≥εδⁿΩε Γ≡σ∞ ± ∞ε∞σφ≥α epoch ΩαΩ ≈Φ±δε, ∩εδ≤≈σφφεσ Φτ τφα≈σφΦ
- Σα≥√, ±εΣσ≡µα∙σΘ± Γ α∩∩α≡α≥φε∞ εßσ±∩σ≈σφΦΦ. ┼±δΦ Γα°σ α∩∩α≡α≥φεσ
- εßσ±∩σ≈σφΦσ ±Φφ⌡≡εφΦτΦ≡εΓαφε ± α≥ε∞φ√∞Φ ≈α±α∞Φ, ≥ε Γα°σ Γ≡σ∞ ∩≡σΣ±≥αΓδσφε
- Γ UTC; ßεδⁿ°Φφ±≥Γε α∩∩α≡α≥φεπε εßσ±∩σ≈σφΦ ∩εΣ≡ατ≤∞σΓασ≥, ≈≥ε Σσφⁿ ΣδΦ≥±
- 24 ≈α±α, φε σ±≥ⁿ σ∙σ 20 ±σΩ≤φΣ (leap seconds), Ωε≥ε≡√σ φ≤µφε ΣεßαΓδ ≥ⁿ Ω
- UTC, ± ≥σ⌡ ∩ε≡ ΩαΩ εΣφαµΣ√ ²≥ε ß√δε ±Σσδαφε Γ 1972 πεΣ≤.
-
- *(╫α±≥ⁿ 9) ╩αΩ ∞επ≤ ±ετΣα≥ⁿ εß·σΩ≥ Date, Ωε≥ε≡√Θ ∩≡σΣ±≥αΓδ σ≥ Φτ ±σß
- ≥σΩ≤∙σσ Γ≡σ∞ ?
-
- [*] ╟φα≈σφΦσ ∩ε ≤∞εδ≈αφΦ■ εß·σΩ≥α Date ²≥ε ≥σΩ≤∙σσ Γ≡σ∞ . ╥αΩΦ∞ εß≡ατε∞
- ±δσΣ≤■∙ΦΘ ΩεΣ ±ετΣασ≥ εß·σΩ≥ Σα≥√, Ωε≥ε≡√Θ ±εΣσ≡µΦ≥ ≥σΩ≤∙σσ Γ≡σ∞ .
-
- Date now = new Date();
-
- *(╫α±≥ⁿ 9) ▀ ⌡ε≈≤ ±ετΣα≥ⁿ ±≥≡εΩ≤, Ωε≥ε≡α ∩≡σΣ±≥αΓδ σ≥ Φτ ±σß Σα≥≤, Γ
- ⌠ε≡∞α≥σ ε≥δΦ≈φε∞ ε≥ ≥επε, Ωε≥ε≡√Θ ΓετΓ≡α∙ασ≥ ∞σ≥εΣ
- java.util.Date.toString(). ─εδµσφ δΦ Φ±∩εδⁿτεΓα≥ⁿ ╩αδσφΣα≡ⁿ (Calendar)?
-
- [*] Hσ≥. ┬∞σ±≥ε ≥επε, ≈≥εß√ ±ετΣαΓα≥ⁿ ╩αδσφΣα≡ⁿ, Γ√≥ πΦΓα≥ⁿ Φτ φσπε Γ±σ
- φσεß⌡εΣΦ∞√σ ∩εδ Φ ±ετΣαΓα≥ⁿ ±≥≡εΩ≤, ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ Σδ σσ ±ετΣαφΦ
- SimpleDateFormat.format().
-
- *(╫α±≥ⁿ 9) ╧ε≈σ∞≤ Γ±σ ∞σ≥εΣ√ Γ java.util.Date ε≥Ωατ√Γα■≥± ≡αßε≥α≥ⁿ?
-
- [*] ┬σ≡ε ≥φσσ Γ±σπε ∩ε≥ε∞≤, ≈≥ε Φ±⌡εΣφ√Θ java.util.Date φσ ß√δ ΩαΩ ∩εδεµσφε
- ΦτΓσ∙σφ ε Γ≡σ∞σφφεΘ τεφσ Φ "φσ ß√δ ε≥Γσ≥±≥Γσφσφ τα Φφ≥σ≡φα÷ΦεφαδΦτα÷Φ■".
- ╫≥εß√ φα≤≈Φ≥ⁿ ²≥εΘ Γ≡σ∞σφφεΘ τεφσ Φ Φφ≥σ≡φα÷ΦεφαδΦτΦ≡εΓα≥ⁿ ∩ε≥≡σß≤σ≥±
- ΣεßαΓδσφΦσ φσΩε≥ε≡εΘ ⌠≤φΩ÷Φεφαδⁿφε±≥Φ, Ωε≥ε≡≤■ ∞εµφε ≤ΓΦΣσ≥ⁿ Γ
- java.util.Calendar Φ φσΩε≥ε≡εΘ ⌠≤φΩ÷Φεφαδⁿφε±≥Φ Φτ java.util.DateFormat.
- ┼±δΦ ┬√ φα⌡εΣΦ≥σ Ωε∞ßΦφα÷Φ■ Γ±σ⌡ ≡εΣ±≥Γσφφ√⌡ Ωδα±±εΓ Σα≥√ ±δεµφεΘ, ≥ε
- ε±≥ασ≥± ≡αΣεΓα≥ⁿ± ≈≥ε εφΦ ß√δΦ ≡ατΣσδσφ√ φα ≡ατφ√σ Ωδα±±√.
-
- *(╫α±≥ⁿ 9) ╠φσ ±εΓσ≡°σφφε φσ φ≤µφ√ Φφ≥σ≡φα÷ΦεφαδΦτα÷Φ , Φφ⌠ε≡∞α÷Φ ε
- Γ≡σ∞σφφεΘ τεφσ, ±Γσ⌡πΦßΩΦΘ φαßε≡ Ωδα±±εΓ ⌠ε≡∞α≥Φ≡εΓαφΦ Σα≥√, σ±≥ⁿ
- ≈≥ε-φΦß≤Σⁿ σ∙σ, ≈≥ε ∩ετΓεδΦδε ß√ ∞φσ ⌡≡αφΦ≥ⁿ Σα≥√ Φ ∩ετΓεδ δε ß√
- ∩≡εΦτΓεΣΦ≥ⁿ φσΩε≥ε≡√σ Γ√≈Φ±δσφΦ ± φΦ∞Φ?
-
- [*] ┬√ ∞εµσ≥σ ≡α±±∞ε≥≡σ≥ⁿ Φ±εδⁿτεΓαφΦσ Ωδα±±α BigDate, φα∩Φ±αφφεπε ╨εΣΦ
- ├≡Φφε∞ (Roedy Green), Φ Σε±≥≤∩φεπε Γ σπε Γσ±ⁿ∞α Φφ⌠ε≡∞α≥ΦΓφε∞ πεδε±±α≡ΦΦ
- (Φ∙Φ≥σ BigDate). ┼±δΦ ┬√ φα∞σ≡σφ√ ±ε⌡≡αφ ≥ⁿ ≡στ≤δⁿ≥α≥ Γ ßατσ Σαφφ√⌡ ΩαΩ
- εß·σΩ≥√ Date ΦδΦ TimeStamp. ≥ε ┬α∞ ≡σΩε∞σφΣ≤σ≥± ∩≡ε≈Φ≥α≥ⁿ ±δσΣ≤■∙≤■ φΦµσ
- ╫α±≥ⁿ ε Ωδα±±σ java.sql.Date.
-
- *(╫α±≥ⁿ 9) ┼±δΦ Ωεφ±≥≡≤Ω≥ε≡ Date( String ) Φ±Ωδ■≈ασ≥± Φτ Ωδα±±α, ≥ε ≈≥ε
- Σεδµσφ Φ±∩εδⁿτεΓα≥ⁿ Γ∞σ±≥ε φσπε?
-
- [*] ─δ ±ετΣαφΦ εß·σΩ≥α java.util.Date δ≤≈°σ Γ±σπε Φ±∩εδⁿτεΓα≥ⁿ
- SimpleDateFormat.parse().
-
- ╩εφ±≥≡≤Ω≥ε≡ Ωδα±±α Date, Ωε≥ε≡√Θ ∩≡ΦφΦ∞ασ≥ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α ±≥≡εΩ≤,
- φατ√Γασ≥± Date.parse( String). ╠σ≥εΣ Date.parse() Φ∞σσ≥ ±ΓεΦ ±εß±≥Γσφφ√σ
- ∩≡αΓΦδα Σδ ∩σ≡σΓεΣα 2-⌡ ÷Φ⌠≡εΓεπε πεΣα (ΩαΩ ≥ε≈Ω≤ ε≥±≈σ≥α Φ±∩εδⁿτ≤σ≥ 1980
- πεΣ) Φ Σ≡≤πΦσ επ≡αφΦ≈σφΦ , Ωε≥ε≡√σ Σσδα■≥ σπε ∞αδε τφα≈Φ∞√∞. ─≡≤πΦσ
- "≥εφΩε±≥Φ" Date.parse(), Ωε≥ε≡√σ φσ ∩εΣΣσ≡µΦΓα■≥± Γ SimpleDate φσ
- ≤±Ωεδⁿτφ≤δΦ ε≥ Γτπδ Σα ∞φεπΦ⌡ ≡ατ≡αßε≥≈ΦΩεΓ.
-
- *(╫α±≥ⁿ 9) ╩εφ±≥≡≤Ω≥ε≡ Date(int year, int month, int date) Φ αφαδεπΦ≈φ√σ
- Ωεφ±≥≡≤Ω≥ε≡√ ≤ßΦ≡α■≥± Φτ Ωδα±±α, ≈≥ε Φ±∩εδⁿτεΓα≥ⁿ Γ∞σ±≥ε φΦ⌡?
-
- [*] ╩εφ±≥≡≤Ω≥ε≡ GregorianCalendar(int year, int month, int date) - Γε≥ σπε
- φεΓα τα∞σφα. ╥αΩµσ πεΣΦ≥± ∞σ≥εΣ Calendar.set( year, month, day ).
- ╟α∞σ≥ⁿ≥σ, ≈≥ε πεΣ Γ GregorianCalendar φα≈Φφασ≥± ± 1 A.D., α φσ ± 1901, ΩαΩ
- Γ ±≥α≡ε∞ Ωεφ±≥≡≤Ω≥ε≡σ Ωδα±±α Date.
-
-
- java.util.TimeZone
-
- *(╫α±≥ⁿ 9) ╩αΩ ∞επ≤ ∩≡εΓσ≡Φ≥ⁿ, ∩≡αΓΦδⁿφ≤■ δΦ Γ≡σ∞σφφ≤■ τεφ≤ Φ±∩εδⁿτ≤σ≥
- ∞ε JVM?
-
- [*] ╤δσΣ≤■∙ΦΘ ΩεΣ Γ√ΓεΣΦ≥ φα ²Ω≡αφ ID ≥σΩ≤∙σΘ Γ≡σ∞σφφεΘ τεφ√ ∩ε ≤∞εδ≈αφΦ■.
-
- System.out.println( TimeZone.getDefault().getID() );
-
- *(╫α±≥ⁿ 9) ╟φα≈σφΦσ TimeZone.getDefault φσ ≥αΩεσ, ΩαΩ εµΦΣαδ(α). ┬ ≈σ∞
- ∩≡εßδσ∞α?
-
- [*] ╟φα≈σφΦσ Γ≡σ∞σφφεΘ τεφ√ ∩ε ≤∞εδ≈αφΦ■ ßατΦ≡≤σ≥± φα τφα≈σφΦΦ ±Φ±≥σ∞φεπε
- ±ΓεΘ±≥Γα "user.timezone". JVM ∩≡σΣ∩εδαπασ≥ ≤±≥αφεΓΦ≥ⁿ ²≥ε τφα≈σφΦσ. ┬ ≥αΩΦ⌡
- ≡σδΦτα⌡, ΩαΩ JDK 1.1 τφα≈σφΦσ user.timezone ≈α±≥ε ß√Γασ≥ φσ ≤±≥αφεΓδσφε, Φ
- ≥αΩΦ∞ εß≡ατε∞ TimeZone.getDefault() Φ±∩εδⁿτ≤σ≥ ±Γεσ ±εß±≥Γσφφεσ Γ±≥≡εσφφεσ
- "φσΦ≥≡αδΦτΦ≡≤■∙σσ" ("fallback") τφα≈σφΦσ (∩ε ≤∞εδ±αφΦ■ ΩεπΣα φσ≥ τφα≈σφΦ
- ∩ε ≤∞εδ≈αφΦ■). ┬ ΣαδⁿφσΘ°Φ⌡ JDK 1.1 ≡σδΦτα⌡ Φ Γ JDK 1.2 ≤±≥αφεΓΩα τφα≈σφΦ
- user.timezone πε≡ατΣε δ≤≈°σ Φ τφα≈σφΦσ "fallback" ≥σ∩σ≡ⁿ GMT (Greenwich
- Mean Time). ┬∩δε≥ⁿ Σε JDK 1.1.3, τφα≈σφΦσ "fallback" ß√δε "PST" (North
- American Pacific Timezone).
-
- *(╫α±≥ⁿ 9) ╚±∩εδⁿτ≤■≥ δΦ Γ±σ ±≥αφΣα≡≥φ√σ εß·σΩ≥√ εΣφε Φ ≥ε µσ Do all the
- standard objects use the τφα≈σφΦσ Γ≡σ∞σφφεΘ τεφ√ ∩ε ≤∞εδ≈αφΦ■?
-
- [*] Hσ≥, Σε JDK 1.2. ┬ JDK 1.1, Date.toString() Φ Calendar Φ±∩εδⁿτ≤■≥
- τφα≈σφΦσ TimeZone.getDefault() Ωε≥ε≡εσ ≈α±≥ε ∞εµσ≥ ß√≥ⁿ φσε∩≡σΣσδσφφ√∞
- (±∞ε≥≡Φ≥σ ∩≡σΣ√Σ≤∙ΦΘ Γε∩≡ε±). ┬ JDK 1.1, Calendar Γ SimpleDateFormat ß√δ
- ≤±≥αφεΓδσφ Γ 1-■ Γ≡σ∞σφφ≤■ τεφ≤ (Σδ US ²≥ε PST).
-
- System.out.println( "Date format TZ = " + TimeZone.getDefault().getID() );
- sdf = DateFormat.getDateTimeInstance( DateFormat.LONG, DateFormat.LONG );
- System.out.println( "Date format TZ = " + sdf.getTimeZone().getID() );
- Calendar cal = Calendar.getInstance();
- System.out.println( "Calendar TZ = " + cal.getTimeZone().getID() );
-
- ╩επΣα τα∩≤±Ωασ≥± Γ ±Φ±≥σ∞σ JDK 1.1.6, H┼ Γ ╤σΓσ≡εα∞σ≡ΦΩαφ±Ωε∞
- ╥Φ⌡εεΩσαφ±Ωε∞ Γ≡σ∞σφΦ Φ φσ Γε Γ≡σ∞σφφεΘ τεσ GMT, ≥ε ≡στ≤δⁿ≥α≥ ß≤Σσ≥ :
-
- Timezone default = GMT
- Date format TZ = PST
- Calendar TZ = GMT
-
- ▌≥ε≥ ∩≡Φ∞σ≡ ∩εΩατ√Γασ≥ 2 ε°ΦßΩΦ (bugs) τφα≈σφΦσ user.timezone φσ
- ε∩≡σΣσδσφε, Φ εφε ≤±≥αφεΓδσφε Γ GMT (±∞ε≥≡Φ≥σ εß±≤µΣσφΦσ
- TimeZone.getDefault()) α ≥αΩ µσ ∩εΩαταφε, ≈≥ε DateFormat ταΓΦ±Φ≥ ε≥ 1-πε
- τφα≈σφΦ , Ωε≥ε≡√∞ Γδ σ≥± Γ Σαφφε∞ ±δ≤≈ασ PST.
-
- ┼±δΦ ┬√ φσ ⌡ε≥Φ≥σ Φ±∩εδⁿτεΓα≥ⁿ DateFormat Γ Ωα≈σ±≥Γσ ╠σ±≥φεΘ Γ≡σ∞σφφεΘ τεφ√,
- ±∞ε≥≡Φ≥σ ΩεΣ ∩≡σΣ±≥αΓδσφφ√Θ φΦµσ.
-
- *(╤σΩ÷Φ 15) ╧ε≈σ∞≤ < Windows RMI/∞εΘ java debugger/IDE/Σ≡≤πεσ> ταΓΦ±ασ≥
- φα φσ±ΩεδⁿΩε ∞Φφ≤≥ σ±δΦ ∞εΘ Windows PC φσ ∩εΣΩδ■≈σφ Ω ╚φ≥σ≡φσ≥≤?
-
- [*] Java Φ∞σσ≥ Γ±≥≡εσφ≤■ ±σ≥σΓ≤■ ∩εΣΣσ≡µΩ≤. ╩επΣα Java ∩≡επ≡α∞∞α ±≥α≡≥≤σ≥,
- αΓ≥ε∞α≥Φ≈σ±ΩΦ ταπ≡≤µασ≥± Winsock DLL. ╧σ≡Γεσ, ≈≥ε εφα ∩√≥ασ≥± Γ√∩εδφΦ≥ⁿ,
- ²≥ε ε∩≡σΣσδΦ≥ⁿ (resolve) ∩εδφε±≥ⁿ■ ΩΓαδΦ⌠Φ÷Φ≡εΓαφφεσ Φ∞ Σε∞σφα Σδ ∞α°Φφ√
- "localhost". ┼±δΦ Γ ┬α°σΘ ±Φ±≥σ∞σ φσ ε∩Φ±αφε ²≥ε Φ∞ , εφα ß≤Σσ≥ ∩√≥α≥ⁿ±
- τα∩≡ε±Φ≥ⁿ σπε ≤ ±σ≡Γσ≡α Φ∞σφ ╚φ≥σ≡φσ≥α, Ωε≥ε≡√Θ εß√≈φε φα⌡εΣΦ≥± ≤ ┬α°σπε
- ∩≡εΓαΘΣσ≡α ╚φ≥σ≡φσ≥ (ISP). ╧ε²≥ε∞≤ ±Φ±≥σ∞α δΦßε τα∩≡ε±Φ≥ ┬α± ∩εΣΩδ■≈Φ≥ⁿ± Ω
- ∩≡εΓαΘΣσ≡≤ ╚φ≥σ≡φσ≥, δΦßε ß≤Σσ≥ µΣα≥ⁿ ∩εΩα φσ Φ±≥σ≈σ≥ Γ≡σ∞ ∩ε∩√≥ΩΦ.
-
- ┼±≥ⁿ ∞φσφΦσ, ≈≥ε ∞εµφε Φτßσµα≥ⁿ ²≥εΘ ∩≡εßδσ∞√ Γ Win95 ΣαΓ ε∩≡σΣσδΦΓ Γ
- ±Φ±≥σ∞σ Σ≡≤πεΘ ±∩ε±εß ε∩≡σΣσδ ≥ⁿ DNS Φ∞σφα. ╙ ∞σφ ²≥ε φσ ≡αßε≥ασ≥.
- ╬≥≡σΣαΩ≥Φ≡≤Θ≥σ ⌠αΘδ hosts ┬α°σΘ ±Φ±≥σ∞√ ≥αΩ, ≈≥εß√ localhost Φ ∩εδφεσ Φ∞
- Σε∞σφα ß√δΦ εßα ε∩≡σΣσδσφ√. ┬ Windows 95 ⌠αΘδ hosts φα⌡εΣΦ≥Φ± Γ
- %windir%\HOSTS (φα∩≡Φ∞σ≡, C:\WINDOWS\HOSTS). ┬ Windows NT ⌠αΘδ hosts
- φα⌡εΣΦ≥± Γ: %windir%\System32\DRIVERS\ETC\HOSTS φα∩≡Φ∞σ≡,
- C:\WINNT\System32\DRIVERS\ETC\HOSTS).
- ┬ Win95 σ±≥ⁿ δεΓ≤°Ωα, Ωε≥ε≡α ταΩδ■≈ασ≥± Γ ≥ε∞, ≈≥ε σ±δΦ ∩ε±δσΣφ τα∩Φ±ⁿ
- φσ ταΩαφ≈ΦΓασ≥± ±Φ∞Γεδα∞Φ carriage-return/line-feed, ≥ε ⌠αΘδ hosts
- ≈Φ≥ασ≥± φσ Σε Ωεφ÷α. ╥αΩ, σ±δΦ ±Φ±≥σ∞α φατ√Γασ≥± goober.best.com
- ∩≡ΦΓσΣΦ≥σ ⌠αΘδ hosts ε≥ ΓΦΣα
-
-
- 127.0.0.1 localhost
-
-
- Ω ΓΦΣ≤
-
-
- 127.0.0.1 goober.best.com localhost
-
-
- ╘αΘδ ∞εµσ≥ Γ√πδ Σσ≥ⁿ ±δσΣ≤■∙Φ∞ εß≡ατε∞:
-
- # Hosts file
- 127.0.0.1 localhost
- 129.146.77.177 goober
-
-
- ─≡≤πεΘ ±∩ε±εß ±ε±≥εΦ≥ Γ ≥ε∞, ≈≥εß√ ≤±≥αφεΓΦ≥ⁿ PPP ±εσΣΦφσφΦσ ± ∩≡εΓαΘΣσ≡ε∞
- ╚φ≥σ≡φσ≥ Γ± ΩΦΘ ≡ατ, ΩεπΣα ┬√ ß≤Σσ≥σ τα∩≤±Ωα≥ⁿ ±σ≥σΓ√σ ∩≡επ≡α∞∞√.
-
- ╬∩√≥ φσΩε≥ε≡√⌡ δ■ΣσΘ πεΓε≡Φ≥ ε ≥ε∞, ≈≥ε ≡αßε≥α ± ±σ≥ⁿ■ φσ ±εΓ±σ∞
- ≤ΣεΓδσ≥Γε≡Φ≥σδⁿφα ∩εΣ Windows95 ± Φ±∩εδⁿτεΓαφΦσ∞ Winsock 1.1, Φ Γ≡σ∞ ε≥
- Γ≡σ∞σφΦ φσεß· ±φΦ∞ε πδ■≈Φ≥. ┬√ ∞εµσ≥σ ∩ε∩√≥α≥ⁿ± ταπ≡≤τΦ≥ⁿ Winsock 2.0.
- ╫≥εß√ ∩εδ≤≈Φ≥ⁿ Winsock 2.0, ┬√ Σεδµφ√ Γ√≥α∙Φ≥ⁿ σπε Φτ φαßε≡α Microsoft
- Windows Sockets 2.0 Software Development Kit. ▌≥ε≥ ±ε⌠≥ ∞εµσ≥ ß√≥ⁿ ∩εδ≤≈σφ
- ±ε ±δσΣ≤■∙Φ⌡ αΣ≡σ±εΓ:
- http://www.microsoft.com/win32dev/netwrk/winsock2/ws295sdk.html ΦδΦ:
- ftp://ftp.microsoft.com/bussys/WinSock/winsock2/
-
- ╧α≥≈Φ, Ωε≥ε≡√σ φ≤µφ√ Σδ ≤δ≤≈∙σφΦ ≡αßε≥√ Γ ±σ≥Φ ≤µσ σ±≥ⁿ Γ Win98.
-
- ─≡≤πΦσ ╤σ≥σΓ√σ ┬ε∩≡ε±√
-
- *(╤σΩ÷Φ 15) ┼±δΦ Γ√τ√Γα■ InetAddress.getByName() ∞σ≥εΣ ± α≡π≤∞σφ≥ε∞ IP
- - αΣ≡σ±ε∞ Γ ΓΦΣσ ±≥≡εΩΦ, ≥Φ∩α "192.168.0.1", ∩εδ≤≈α■ φα φσΩε≥ε≡√⌡ (φε φσ φα
- Γ±σ⌡) ∩δα≥⌠ε≡∞α⌡ UnknownHostException. ╩εΣ :
-
- Socket sock = new Socket("155.152.5.1", 23);
-
- ß≡ε±ασ≥ Φ±Ωδ■≈σφΦσ. ╧ε≈σ∞≤?
-
- [*] ▌≥ε ∩δα≥⌠ε≡∞σφφεσ ≡ατδΦ≈Φσ, Ωε≥ε≡εσ ΓετφΦΩασ≥ Φτ ≡ατδΦ≈φεΘ ±σ∞αφ≥ΦΩΦ
- δσµα∙Φ⌡ Γ ε±φεΓσ ±σ≥σΓ√⌡ ßΦßδΦε≥σΩ, Φ ∩ε⌠ΦΩ±σφε Γ JDK 1.1. ┬ Solaris Φ
- Windows NT, ±≥≡εΩα IP αΣ≡σ±α ≡αßε≥ασ≥ ≥εδⁿΩε Σδ ≥σ⌡ αΣ≡σ±εΓ, Ωε≥ε≡√σ Φ∞σ■≥
- α±±ε÷ΦΦ≡εΓαφφεσ Φ∞ ⌡ε±≥α. Hα Linux Φ Windows 95 ±≥≡εΩΦ IP αΣ≡σ±α
- ±≡αßα≥√Γα■≥ Γ±σπΣα.
- ╩επΣα ±ετΣασ≥± ²Ωτσ∞∩δ ≡ InetAddress ± IP αΣ≡σ±ε∞ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α,
- Γ√∩εδφ σ≥± εß≡α≥φεσ DNS ∩≡σεß≡ατεΓαφΦσ. ┼±δΦ IP αΣ≡σ± φσ α±±ε÷ΦΦ≡εΓαφ ±
- ∩≡αΓΦδⁿφ√∞ Φ∞σφσ∞ ⌡ε±≥α, ≥ε ±ετΣαφΦσ ²Ωτσ∩δ ≡α Ωδα±±α InetAddress ∩ε≥σ≡∩Φ≥
- φσ≤Σα≈≤. ▌≥ε Γδ σ≥± ≈α±≥ⁿ■ ßε≡ⁿß√ ± DNS-spoofing (∩εΣ∞σφα DNS), Φ Γ JDK
- 1.1 ≡αßε≥ασ≥ ∩ε≥ε∞≤ ≈≥ε εß≡α≥φεσ ∩≡σεß≡ατεΓαφΦσ φσ ∩≡εΦ±⌡εΣΦ≥ ∩εΩα Φ∞
- ⌡ε±≥α φσ τα∩≡ε°σφε. ╥αΩ Γ JDK 1.1,
-
- InetAddress in = InetAddress.getByName("155.152.5.1");
-
-
- [Note: ▌≥≤ Φφ⌠ε≡∞α÷Φ■ φ≤µφε ∩εΣ≥Γσ≡ΣΦ≥ⁿ. ╤σ≥σΓ√σ π≤≡≤?]
- ─≡≤πΦσ ±αΘ≥√:
-
- ╙ Microsoft σ±≥ⁿ φσ±ΩεδⁿΩε network-related ∩α≥≈σΘ φα Φ⌡ ±αΘ≥σ
- http://www.microsoft.com/
-
- *(╤σΩ÷Φ 15) ▀ ⌡ε≈≤ ∩σ≡σΣα≥ⁿ class ⌠αΘδ Γ±σ∞ ≥σ∞ µσδα■∙Φ∞, Ω≥ε Φ±∩εδⁿτ≤σ≥
- ∞εΘ α∩∩δσ≥. ┼±≥ⁿ ΦΣσΦ φα±≈σ≥ ≥επε ΩαΩ?
-
- [*] ╥√ Σεδµσφ Φ±∩εδⁿτεΓα≥ⁿ ∞αδσφⁿΩ≤■ ⌡Φ≥≡ε±≥ⁿ: ≡ατ∞σ±≥Φ≥ⁿ ≥ΓεΘ .class
- ⌠αΘδ(√) Γ .zip α≡⌡ΦΓσ Φ Φ±∩εδⁿτεΓα≥ⁿ ∞σ≥εΣ showDocument() ε≥ URL. HσΩ≥ε,
- εß≡α∙α ±ⁿ Ω ²≥ε∞≤ URL ∩εδ≤≈Φ≥ εΩφε ΣΦαδεπα, Γ Ωε≥ε≡ε∞ εφ ß≤Σσ≥ τα∩≡ε°σφ ε
- ±ε⌡≡αφσφΦΦ ⌠αΘδα φα σπε δεΩαδⁿφε∞ ΣΦ±Ωσ.
- ─≡≤πΦσ ±αΘ≥√:
-
- ┬√ ∞εµσ≥σ ≤ΓΦΣσ≥ⁿ ²≥ε µΦΓⁿσ∞ Φ ∩ε∩≡εßεΓα≥ⁿ φα ±σßσ φα:
- http://www.best.com/~rmlynch/saveit.html
-
- *(╤σΩ÷Φ 15) ╩αΩ τα±≥αΓΦ≥ⁿ URLConnection ≡αßε≥α≥ⁿ ≈σ≡στ proxy firewall?
- ╥.σ. ╩αΩ τα±≥αΓΦ≥ⁿ Java ∩≡ΦδεµσφΦσ Γ√∩εδφ ≥ⁿ Σε±≥≤∩ Ω Web ≈σ≡στ ∩≡εΩ±Φ?
-
- [*] ▌≥ε εß√≈φε φ≤µφε Σδ δ■ßεπε ±σ≥σΓεπε Σε±≥≤∩α Ω Σ≡≤πε∞≤ Σε∞σφ≤. ┬√
- Σεδµφ√ ταΣα≥ⁿ runtime ±Φ±≥σ∞σ ≈≥ε ┬√ ∩√≥ασ≥σ±ⁿ ±Σσδα≥ⁿ Φ±∩εδⁿτ≤ α≡π≤∞σφ≥√
- Ωε∞αφΣφεΘ ±≥≡εΩΦ ΩεπΣα τα∩≤±Ωασ≥σ ∩≡επ≡α∞∞≤.
-
- java -DproxySet=true -DproxyHost=SOMEHOST -DproxyPort=SOMENUM code.java
-
- ╬≥∞σ≥≥ⁿσ, ≈≥ε proxyPort Γδ σ≥± ε∩÷Φεφαδⁿφ√∞ Φ ∩ε ≤∞εδ≈αφΦ■ ≡αΓσφ 80. ┴στ
- ²≥επε ┬√ ≤ΓΦΣΦ≥σ Φ±Ωδ■≈σφΦσ ≥Φ∩α java.net.UnknownHostException ΦδΦ
- java.net.NoRouteToHostException
-
- ╙±≥αφεΓΩΦ ∩≡εΩ±Φ ≡αßε≥α■≥ Φ Σδ java.net.URLConnection, Φ Σδ
- java.net.Sockets.
-
- Netscape'Γ±Ωα Φ IE'α JVMs (ΓΦ≡≥≤αδⁿφ√σ Java ∞α°Φφ√) (∩ε Ω≡αΘφσΘ ∞σ≡σ Γ
- Γσ≡±Φ ⌡ 4.⌡+) ∩≡ΦφΦ∞α■≥ ≤±≥αφεΓΩΦ ∩≡εΩ±Φ Σδ α∩∩δσ≥εΓ Φτ Ωεφ⌠Φπ≤≡α÷ΦΦ
- ∩≡εΩ±Φ ß≡α≤τσ≡α. ┬√ ∞εµσ≥σ ≥αΩµσ ≡αßε≥α≥ⁿ ± ∩≡εΩ±Φ Γ ∩≡εΦδεµσφΦ ⌡ (φσ
- α∩∩δσ≥α⌡) ΣεßαΓΦΓ ±δσΣ≤■∙Φσ ±≥≡εΩΦ
-
-
- // ≤±≥αφεΓΦ≥σ ≈≥εß√ Φ±∩εδⁿτεΓα≥ⁿ ∩≡εΩ±Φ
- System.getProperties().put("proxySet", "true");
- System.getProperties().put("proxyHost", "myproxy.server.name");
- System.getProperties().put("proxyPort", "80");
-
-
- Hε ΩαΩ ∞φσ ≤τφα≥ⁿ Φ∞ ∩≡εΩ±Φ ±σ≡Γσ≡α?
- ▌≥ε≥ ΩεΣ ∩≡ε±≥ε πεΓε≡Φ≥ ┬α∞ ΩαΩ ∞εµφε ∩εδ≤≈Φ≥ⁿ URL ±εσΣΦφσφΦσ ≈σ≡στ ∩≡εΩ±Φ.
- Hε ≥αΩ ΩαΩ ²≥ε ┬α° ∩≡εΩ±Φ ±σ≡Γσ≡, ≥ε ∩≡σΣ∩εδαπασ≥± , ≈≥ε ┬√ τφασ≥σ σπε Φ∞ .
- ╚ φσ ±≤∙σ±≥Γ≤σ≥ ΩεΣα, Ωε≥ε≡√Θ ∞εµφε φα∩Φ±α≥ⁿ, Ωε≥ε≡√Θ ∩ετΓεδΦ≥ ∩≡εΦτΓεδⁿφ√∞
- URL ±εσΣΦφσφΦ ∞ ß√≥ⁿ ΦφΦ÷ΦΦ≡εΓαφ√∞Φ ΦτΓφσ firewall'α. ╧εΣ≤∞αΘ≥σ εß ²≥ε∞!
- ┼±δΦ ß√ ²≥ε ß√δε ≥αΩ, ≥ε firewall φσ Γ√∩εδφ δ ß√ ±Γε■ ≡αßε≥≤.
-
- ╥αΩµσ ε≥∞σ≥≥ⁿσ, ≈≥ε ±≤∙σ±≥Γ≤■≥ ±εε≥Γσ≥±≥Γ≤■∙Φσ socksProxyPort Φ
- socksProxyHost ΩεπΣα socks Φ±∩εδⁿτ≤■≥± Γ∞σ±≥ε ∩≡εΩ±Φ. Socks ∩ε≡≥ ∩ε
- ≤∞εδ≈αφΦ■ - 1080.
-
- *(╤σΩ÷Φ 15) ╫≥ε ετφα≈ασ≥ "swizzle"(φσ≥ε≈φ√Θ ±ΦφεφΦ∞ - ΓτßΦ≥ⁿ[ΩεΩ≥σΘδⁿ]),
- φα∩≡Φ∞σ≡ "Swizzle an object?"
-
- [*] ▌≥ε ετφα≈ασ≥ ±σ≡ΦαδΦτεΓα≥ⁿ. "To swizzle an object" ετφα≈ασ≥ ≡σΩ≤≡±ΦΓφε
- ±σ≡ΦαδΦτεΓα≥ⁿ ±ετΣαφφ√σ εß·σΩ≥√.
-
- *(╤σΩ÷Φ 15) ▀ Φ±∩εδⁿτ≤■ Γετ∞εµφε±≥Φ ±±σ≡ΦαδΦτα÷ΦΦ Γ 1.1 ≈≥εß√ ±ε⌡≡αφΦ≥ⁿ
- φσΩε≥ε≡√σ εß·σΩ≥√ φα ΣΦ±Ωσ. ▀ ΣεßαΓΦδ φεΓεσ ∩εδσ Γ εΣΦφ Φτ ∞εΦ⌡ εß·σΩ≥εΓ,
- Ωε≥ε≡√Θ ±σ≡ΦαδΦτ≤σ≥± Φ ≥σ∩σ≡ⁿ Σσ±σ≡ΦαδΦτα÷Φ ∞εΦ⌡ ±≥α≡√⌡ εß·σΩ≥εΓ ßεδⁿ°σ
- φσ ≡αßε≥ασ≥. ▀ ∩εδ≤≈α■ ≥αΩεσ Φ±Ωδ■≈σφΦσ :
-
-
- java.io.InvalidClassException: MacroData; Local class not compatible
-
-
- [*] ┬α∞ φ≤µφε ΣεßαΓΦ≥ⁿ εß· ΓδσφΦσ ≥Φ∩α
-
-
- static final long serialVersionUID = 4021215565287364875L;
-
-
- Γ ∞εΣΦ⌠Φ÷Φ≡εΓαφφ√Θ Ωδα±±. └Ω≥≤αδⁿφεσ τφα≈σφΦσ ²≥επε ΣδΦφφεπε ÷σδεπε
- ∩≡σΣε±≥αΓδ σ≥± ≤≥ΦδΦ≥εΘ "serialver", Ωε≥ε≡α σ±≥ⁿ Γ JDK. ╦■ßα ε≥δΦ≈φα ε≥
- ∩σ≡ΓεΘ Γσ≡±Φ Ωδα±±α ≥≡σß≤σ≥, ≈≥εß√ ²≥α ±≥α≥Φ≈σ±Ωα ∩σ≡σ∞σφφα ß√δα
- ε∩≡σΣσδσφα Γ Ωδα±±σ.
-
- *(╤σΩ÷Φ 15) ╠εΘ ΩεΣ ≡αßε≥α■∙ΦΘ ± ±εΩσ≥α∞Φ Γ√πδ ΣΦ≥ ∩≡αΓΦδⁿφ√∞, φε φσ
- ≡αßε≥ασ≥!
-
- [*] ╧≡Φ Φ±∩εδⁿτεΓαφΦΦ ±εΩσ≥εΓ ┬√ εß√≈φε ε≥Ω≡√Γασ≥σ εßα Γ⌡εΣ ∙ΦΘ Φ Φ±⌡εΣ ∙ΦΘ
- ∩ε≥εΩΦ. TCP ±εσΣΦφσφΦσ Γδ σ≥± ∩εδφεΣ≤∩δσΩ±φ√∞, φε δΦßε ε≥±√δα■∙α , δΦßε
- ∩≡ΦφΦ∞α■∙α ±≥ε≡εφ√ ∞επ≤≥ ταΩ≡√Γα≥ⁿ± φσταΓΦ±Φ∞ε. ╧ε ≤∞εδ≈αφΦ■, ΩεπΣα
- ≤±≥αφεΓδσφε ≈≥ε ≤Σαδσφφα ±≥ε≡εφα ταΩ≡√δα ±εσΣΦφσφΦσ, δεΩαδⁿφα ±≥ε≡εφα
- ∩≡ε±≥ε ταΩ≡√Γασ≥ σπε. ╧≡εΓσ≡ⁿ≥σ, ∞εµσ≥ ß√≥ⁿ ²≥ε ±δ≤≈ασ≥± ± ┬α∞Φ
- ΣεßαΓδσφΦσ∞ ±εε≥Γσ≥±≥Γ≤■∙σΘ ∩α≡√. ╚±∩εδⁿτ≤Θ≥σ tcpdump ≈≥εß√ ∩≡εΓσ≡Φ≥ⁿ ²≥ε.
-
- *(╤σΩ÷Φ 15) ╩αΩ ∞φσ ∩εδ≤≈Φ≥ⁿ ±εε≥Γσ≥±≥ΓΦσ IP αΣ≡σ±α Φ Φ∞σφΦ ⌡ε±≥α?
-
- [*] ┬ Java 1.1 (≡αφφΦσ Γσ≡±ΦΦ ß√δΦ πδ■ΩαΓ√∞Φ) Φ±∩εδⁿτ≤Θ≥σ:
-
-
- String host = InetAddress.getByName("211.10.2.119").getHostName();
-
-
- *(╤σΩ÷Φ 15) ╩αΩ ∞φσ Γ±≥≡εΦ≥ⁿ Ωε≡ⁿ (anchor) Γ URL? ╧≡ε±≥ε ∩ε∞σ±≥Φ≥ⁿ σπε
- ΩαΩ ≈α±≥ⁿ ±≥≡εΩΦ Γ Ωεφ±≥≡≤Ω≥ε≡ φσ ≡αßε≥ασ≥.
-
- [*] ╫≥ε-≥ε ≥Φ∩α:
-
-
- URL url = new URL("http://www.my_domain.com/my_page.html");
- URL anchor = new URL(url, "#section2");
- this.getAppletContext().showDocument(anchor);
-
- *(╫α±≥ⁿ 10) ▀ Φ±∩εδⁿτ≤■ add(Component), ≈≥εß√ ΣεßαΓΦ≥ⁿ Ωε∞∩εφσφ≥√ Γ
- Ωεφ≥σΘφσ≡. ┼±≥ⁿ δΦ ±∩ε±εß Γφεπε ≤ΩαταφΦ z-∩ε≡ ΣΩα ²≥Φ⌡ Ωε∞∩εφσφ≥?
-
- [*] ┬ JDK 1.0 φσ≥ Γφεπε ±∩ε±εßα ≤±≥αφεΓΦ≥ⁿ z-∩ε≡ ΣεΩ Ωε∞∩εφσφ≥. ┬√ ∞εµσ≥σ
- ∩ε∩≡εßεΓα≥ⁿ ²Ω±∩σ≡Φ∞σφ≥αδⁿφε ∩εΣεß≡α≥ⁿ σπε ± ∩ε∞ε∙ⁿ■ Φ±∩εδⁿτ≤σ∞επε Γα∞Φ
- ß≡ε≤τσ≡α, ΦδΦ ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ CardLayoutManager, ≈≥εß√
- ≤Σε±≥εΓσ≡Φ≥± , ≈≥ε φσεß⌡εΣΦ∞α Γα∞ ∩αφσδⁿ ±∩σ≡σΣΦ.
-
- ┬ JDK 1.1 z-∩ε≡ ΣεΩ Ωε∞∩εφσφ≥ ("z-∩ε≡ ΣεΩ" ετφα≈ασ≥ ∩ε≡ ΣεΩ
- "±∩σ≡σΣΦ-±ταΣΦ", ≥.σ. ΩαΩεσ εΩφε ∩σ≡σΣ ΩαΩΦ∞ φα⌡εΣΦ≥± ) ≤∩≡αΓδ σ≥±
- ∩ε±≡σΣ±≥Γε∞ ∞σ≥εΣα add(Component comp, int index). ╧ε ≤∞εδ≈αφΦ■ Ωε∞∩εφσφ≥√
- ΣεßαΓδ ■≥± ε≥ 0 Σε N. ╠σ≥εΣ Ωδα±±α Container paint ε≥≡Φ±εΓ√Γασ≥ σπε
- ΓΦΣΦ∞√σ Ωε∞∩εφσφ≥√ ε≥ N Σε 0.
-
- *(╫α±≥ⁿ 10) ╩αΩ ∞επ≤ ∩εδ≤≈Φ≥ⁿ ≡ατ∞σ≡√ Φ ≡ατ≡σ°σφΦσ ²Ω≡αφα?
-
- [*] ╚±∩εδⁿτ≤Θ≥σ
-
- java.awt.Toolkit.getDefaultToolkit().getScreenSize()
-
- ΦδΦ
-
- java.awt.Toolkit.getDefaultToolkit().getScreenResolution()
-
- ╨ατ≡σ°σφΦσ ²Ω≡αφα ΓετΓ≡α∙ασ≥± Γ ≥ε≈Ωα⌡-φα-Σ■Θ∞ (dpi, dots-per-inch).
-
- ╟απδ φΦ≥σ Γ Ωδα±± Toolkit - ≥α∞ ∞φεπε ∩εδστφ√⌡ ∞σ≥εΣεΓ
-
- Toolkit.getDefaultToolkit().getColorModel().getPixelSize()
-
- ΓετΓ≡α∙ασ≥ ÷Γσ≥εΓ≤■ ∞εΣσδⁿ Γ ßΦ≥α⌡-φα-∩ΦΩ±σδ (bpp, bits-per-pixel)
-
- Math.pow(2, Toolkit.getDefaultToolkit().
- getColorModel().getPixelSize())
-
- ΓετΓ≡α∙ασ≥ ÷Γσ≥εΓ≤■ ∞εΣσδⁿ Γ ΓΦΣσ ΩεδΦ≈σ±≥Γα ÷Γσ≥εΓ. ╚δΦ Φ±∩εδⁿτ≤Θ≥σ ²≥ε:
-
- 1 << Toolkit.getDefaultToolkit().
- getColorModel().getPixelSize()
-
- ╤≥σ∩σφⁿ 2 Γ√≈Φ±δ σ≥± ΩαΩ ΣΓεΦ≈φ√Θ ±ΣΓΦπ 1.
-
- *(╫α±≥ⁿ 10) ╩αΩ ∞επ≤ ≤≈σ±≥ⁿ ≡ατ∞σ≡√ ταπεδεΓΩα Φ ≡α∞ΩΦ ∩≡Φ ε≥≡Φ±εΓΩσ
- Frame'α?
-
- [*] ╚±∩εδⁿτ≤Θ≥σ ∞σ≥εΣ MyFrame.getInsets(). ╬φ ΓετΓ≡α∙ασ≥ εß·σΩ≥
- java.awt.Insets Ωε≥ε≡√Θ Φ∞σσ≥ ≈σ≥√≡σ ÷σδ√⌡ ∩εδ : top, left, bottom, right,
- Ωε≥ε≡√σ Σα■≥ ΩεδΦ≈σ±≥Γε ∩ΦΩ±σδεΓ Σδ ΩαµΣεπε Φτ ∩εδσΘ, ε≥ΩδαΣ√Γασ∞√⌡
- ±Γσ≡⌡≤. ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ ²≥Φ τφα≈σφΦ , ≈≥εß√ ε≥≡σπ≤δΦ≡εΓα≥ⁿ εß·σΩ≥
- Dimension, ΓετΓ≡α∙ασ∞√Θ ╤omponent.getSize().
-
- ┼±δΦ ┬√ ²≥ε Σσδασ≥σ ²≥ε Γ Ωεφ±≥≡≤Ω≥ε≡σ, ┬α∞ φσεß⌡εΣΦ∞ε ≤Σε±≥εΓσ≡Φ≥± , ≈≥ε
- Peer εß·σΩ≥ Frame'α ≤µσ ±ετΣαφ. ╚φα≈σ εß·σΩ≥ Insets, ΓετΓ≡α∙ασ∞√Θ
- getInsets(), ß≤Σσ≥ ±ε±≥ε ≥ⁿ Φτ φ≤δσΘ. ┬√τεΓΦ≥σ Frame.addNotify(), ≈≥εß√
- ±∩≡εΓε÷Φ≡εΓα≥ⁿ ±ετΣαφΦσ Peer'α.
-
- *(╫α±≥ⁿ 10) ╩αΩ φ≤µφε Φτ∞σφ ≥ⁿ pατ∞σp√ ±∩Φ±Ωα? ▀ εß· ΓΦδ ±∩Φ±εΩ ΩαΩ
-
- List tlist = new List(10);
-
- φε ±≥pεΩΦ Γ ±∩Φ±Ωσ ß√δΦ ΣδΦφεΘ 80 ±Φ∞ΓεδεΓ Φ ≥εδⁿΩε 15 ∩σ≡Γ√⌡ ß√δΦ
- ∩εΩαταφ√. ╠φσ φσ ≤Σαδε±ⁿ Φτ∞σφΦ≥ⁿ ≡ατ∞σ≡ ±∩Φ±Ωα, ≈≥εß√ ∩εΩατα≥ⁿ σπε
- ±εΣσ≡µΦ∞εσ, φσ ∩≡Φßσπα Ω Φ±∩εδⁿτεΓαφΦ■ ∩εδε± ∩≡εΩ≡≤≥ΩΦ.
-
- [*] Hσδⁿτ Φτ∞σφ ≥ⁿ ≡ατ∞σ≡ ±∩Φ±Ωα Γ Ωεφ±≥≡≤Ω≥ε≡σ, ≥αΩ ≈≥ε ΣεßαΓ≥σ ±δσΣ≤■∙Φσ
- ±≥≡εΩΦ Γ Applet (ΦδΦ πΣσ ß√ ≥ε φΦ ß√δε):
-
- public void paint (Graphics g) {
- tlist.setSize(200,200);
- }
-
- ╧ε≥ε∞ ∩σ≡σΣ ≥σ∞ ΩαΩ ∩εΩατα≥ⁿ Panel/Frame ±ε ±∩Φ±Ωε∞:
-
- tlist.resize(400,400);
-
- *(╫α±≥ⁿ 10) ╩αΩ ∞φσ ≤τφα≥ⁿ, ΩεπΣα ∩≡εΦτε°δε Φτ∞σφσφΦσ ≡ατ∞σ≡εΓ εΩφα?
-
- [*] ╧σ≡σπ≡≤τΦ≥σ ∞σ≥εΣ Component.setBounds(int, int, int, int), ≈≥ε ß√
- Σσδα≥ⁿ ≥ε ≈≥ε ┬α∞ φσεß⌡εΣΦ∞ε. ╩εφσ≈φε, ┬α∞ ≥αΩ µσ φ≤µφε Γ√τ√Γα≥ⁿ
- super.setBounds(). Hσεß⌡εΣΦ∞ε τα∞σ≥Φ≥ⁿ, ≈≥ε setBounds() τα∞σφΦδ ≤±≥α≡σΓ°ΦΘ
- (deprecated) ∞σ≥εΣ reshape().
-
- ╟α∞σ≥ⁿ≥σ, ≈≥ε φεΓεσ API Γ√τ√Γασ≥ φσ ≈≥ε Φφεσ ΩαΩ ≤±≥α≡σΓ°σσ API. Hα∩≡Φ∞σ≡
- Component.setBounds Γ√τ√Γασ≥ Component.reshape, φε φσ reshape Γ√τ√Γασ≥
- setBounds. ▌≥ε ∩≡εΦ±⌡εΣΦ≥ ∩ε≥ε∞≤, ≈≥ε AWT ≈α±≥ε ≥≡σß≤σ≥± Γ√τ√Γα≥ⁿ σπε Σδ
- ±ΓεΦ⌡ ±εß±≥Γσφφ√⌡ φ≤µΣ. ┼±δΦ AWT Γ√τεΓσ≥ ±≥α≡√Θ ∞σ≥εΣ, τα≥σ∞ φεΓ√Θ ∞σ≥εΣ, Φ
- ┬√ ∩σ≡σπ≡≤τΦδΦ φεΓ√Θ ∞σ≥εΣ, AWT (≈≥ε σ±≥ⁿ φσ∩≡αΓΦδⁿφε) φσ Γ√τεΓσ≥ ┬α°≤
- ∩≡ε÷σΣ≤≡≤. ┬ ±δ≤≈ασ σ±δΦ AWT Γ√τ√Γασ≥ φεΓ√Θ ∞σ≥εΣ (α εφ Γ ±Γε■ ε≈σ≡σΣⁿ
- Γ√τ√Γασ≥ ±≥α≡√Θ), δ■ß√σ ∩σ≡σπ≡≤τΩΦ φεΓεπε ∞σ≥εΣα ß≤Σ≤≥ Ωε≡≡σΩ≥φε Γ√τΓαφ√
- AWT ∩ε φσεß⌡εΣΦ∞ε±≥Φ. ┼±δΦ Γ√°σ±Ωαταφεσ Γα∞ φσ ∩εφ ≥φε, ∩≡ε±≥ε ταß≤Σ≥σ ²≥ε.
-
- *(╫α±≥ⁿ 10) ╩αΩ ∞φσ ε≥÷σφ≥≡Φ≡εΓα≥ⁿ ΣΦαδεπεΓεσ εΩφε?
-
- [*] Hα ≥σΩ≤∙ΦΘ ∞ε∞σφ≥, ┬√ φσ ∞εµσ≥σ ∩εδ≤≈Φ≥ⁿ αß±εδ■≥φ√σ Ωεε≡ΣΦφα≥√ α∩∩δσ≥α
- φα ²Ω≡αφσ. ┼πε ∩εδεµσφΦσ (0,0) ε≥φε±Φ≥σδⁿφε ß≡ε≤τσ≡α, α φσ ²Ω≡αφα. Hε Γ√
- ∞εµσ≥σ ε≥÷σφ≥≡Φ≡εΓα≥ⁿ φσ≈≥ε, ≈≥ε Γ±∩δ√Γασ≥ ΦδΦ ∩εΩατ√Γασ≥± , φα ²Ω≡αφσ ±
- ∩ε∞ε∙ⁿ■ ΩεΣα, ΩαΩ ²≥ε≥:
-
- Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
- my_window.move(
- ( screen.width - my_window.size().width ) / 2,
- ( screen.height - my_window.size().height ) / 2 );
-
- my_window.show().
-
- ┬ ∩εΣεßφεΘ ∞αφσ≡σ, ┬√ ∞εµσ≥σ ε≥÷σφ≥≡Φ≡εΓα≥ⁿ φσ≈≥ε ε≥φε±Φ≥σδⁿφε σπε ∩≡σΣΩα.
- ╬ß≡α≥Φ≥σ ΓφΦ∞αφΦσ φα ≤∞φεσ Φ±∩εδⁿτεΓαφΦσ ≥αΩεπε API, ΩαΩ translate(),
- Ωε≥ε≡εσ Σσδασ≥ ≡αßε≥≤ τα ┬α±:
-
- void center(Component parent) {
- pack();
-
- Point p = parent.getLocation();
- Dimension d = parent.getSize();
- Dimension s = getSize();
-
- p.translate((d.width - s.width) / 2,
- (d.height - s.height) / 2);
- setLocation(p);
- }
-
- *(╫α±≥ⁿ 10) ╩αΩ ∞επ≤ ∩εδ≤≈Φ≥ⁿ αß±εδ■≥φ√σ Ωεε≡ΣΦφα≥√ ∞√°Φ?
-
- [*] ┬√ Φ∞σσ≥σ Γ ΓΦΣ≤, ≈≥ε σ±δΦ ≡ατ∞σ≡√ ß≡ε≤τσ≡α 640x480, ┬√ ⌡ε≥Φ≥σ ∩εδ≤≈Φ≥ⁿ
- Y-Ωεε≡ΣΦφα≥≤ Γ ΣΦα∩ατεφσ ε≥ 0 Σε 480. └ σ±δΦ εΩφε ß≡ε≤τσ≡α εΩεδε 800⌡600,
- ≥ε Γ ΣΦα∩ατεφσ ε≥ 0 Σε 600. ▌≥ε ∞εµσ≥ ∩εφαΣεßΦ≥± Σδ Γ±∩δ√Γα■∙ΦΘ ∞σφ■,
- ΩεπΣα Γ√ ⌡ε≥Φ≥σ σπε ∩εΩατα≥ⁿ ∩ε αß±εδ■≥φ√∞ Ωεε≡ΣΦφα≥α∞ ∞√°Φ.
-
- ╠σ≥εΣ ταΩδ■≈ασ≥± Γ αφαδΦτσ ±εß√≥ΦΘ ∞√°Φ Φ ∩εδεµσφΦΘ ≤Ωατα≥σδ Φ σπε
- ≡εΣΦ≥σδσΘ ∩εΩα φσ ß≤Σσ≥ ≡εΣΦ≥σδ . ╒ε≥ Σδ φσΩε≥ε≡√⌡ ß≡ε≤τσ≡εΓ ²≥ε
- φσ∩≡Φ∞σφΦ∞ε. [╞Σσ∞ δ≤≈°Φ⌡ ∩≡σΣδεµσφΦΘ.]
-
- *(╫α±≥ⁿ 10) ╩αΩ ∞επ≤ ε∩≡σΣσδΦ≥ⁿ Φτ∞σφσφΦσ ≡ατ∞σ≡α ⌠pσΘ∞α ΦδΦ Σ≡≤πεπε
- Ωε∞∩εφσφ≥α?
-
- [*] ┼±δΦ ┬√ Φ±∩εδⁿτ≤σ≥σ JDK 1.0.2, ┬√ ∞εµσ≥σ ∩σ≡σπ≡≤τΦ≥ⁿ ∞σ≥εΣ
- Component.reshape(int, int, int, int) ≈≥ε ß√ Σσδα≥ⁿ Γ±σ ≈≥ε ┬α∞ φσεß⌡εΣΦ∞ε,
- Ωεφσ≈φε φσεß⌡εΣΦ∞ε Γ√τ√Γα≥ⁿ super.reshape().
- ┬ JDK 1.1.⌡, setBounds() ∩≡Φ°σδ φα ±∞σφ≤ reshape(), ≥σ∞ φσ ∞σφσσ ±≤∙σ±≥Γ≤σ≥
- ∩≤≥ⁿ δ≤≈°σ, ≈σ∞ ∩σ≡σπ≡≤τΩα ∞σ≥εΣα setBounds(), Σδ ε∩≡σΣσδσφΦ Φτ∞σφσφΦ
- ≡ατ∞σ≡εΓ - Φ±∩εδⁿτεΓα≥ⁿ φεΓ≤■ ∞εΣσδⁿ ±εß√≥ΦΘ. ╟α∞σ≥ⁿ≥σ, ≈≥ε φεΓεσ API
- Γ√τ√Γασ≥ ≤±≥α≡σΓ°σσ.
-
- ╧≡Φσ∞δΦ∞√Θ ∩≤≥ⁿ ε∩≡σΣσδσφΦ Φτ∞σφσφΦ ≡ατ∞σ≡εΓ Γ JDK 1.1.⌡ ²≥ε
- τα≡σπΦ±≥≡Φ≡εΓα≥ⁿ ComponentListener φα Frame'σ, ∩≡ΦßδΦτΦ≥σδⁿφε ≥αΩ:
-
- import java.awt.*;
- import java.awt.event.*;
-
- class MyFrame extends Frame {
- public MyFrame() {
- addComponentListener(new CmpAdapter());
- }
-
- class CmpAdapter extends ComponentAdapter {
- public void componentResized(ComponentEvent evt) {
- //doSomething();
- }
- }
- }
-
- ╚φα≈σ ≥αΩεπε µσ ²⌠⌠σΩ≥α ∞εµφε ΣεßΦ≥± ≥αΩΦ∞ εß≡ατε∞:
-
- class MyFrame extends Frame implements ComponentListener {
- public MyFrame() {
- addComponentListener(this);
- }
-
- public componentHidden(ComponentEvent evt) { }
- public componentMoved(ComponentEvent evt) { }
- public componentShown(ComponentEvent evt) { }
- public componentResized(ComponentEvent evt) {
- //doSomething
- }
- }
-
- ╚δΦ ≥αΩ:
-
- public MyFrame() {
- addComponentListener(new ComponentAdapter() {
- public void componentResized(ComponentEvent evt) {
- // doSomething;
- }
- } );
- }
-
- *(╫α±≥ⁿ 10) ─δ ≈σπε ∩≡σΣφατφα≈σφ√ ∞σ≥εΣ√ Component preferredSize() Φ
- minimumSize()?
-
- [*] ▌≥Φ ∞σ≥εΣ√ ∩ετΓεδ ■≥ LayoutManager≤ Γ√≈Φ±δ ≥ⁿ ∩≡εΣ∩ε≈≥Φ≥σδⁿφ√Θ Φ
- ∞ΦφΦ∞αδⁿφ√Θ ≡ατ∞σ≡√ Ωε∞∩εφσφ≥, Ωε≥ε≡√σ εφ ≤∩ε≡ Σε≈ΦΓασ≥. ┬√ ∞εµσ≥σ
- ≤∩≡αΓδ ≥ⁿ τφα≈σφΦ ∞Φ, Ωε≥≡√σ Φ±∩εδⁿτ≤σ≥ LayoutManager, ±ετΣαΓα ∩εΣΩδα±±√
- Φ±∩εδⁿτ≤σ∞√⌡ Γα∞Φ Ωε∞∩εφσφ≥εΓ Φ ∩σ≡σπ≡≤µα ²≥Φ ∞σ≥εΣ√. ┬√ Φ⌡ φσ Γ√τ√Γασ≥σ,
- ┬√ ∩σ≡σπ≡≤µασ≥σ Φ⌡ Φ εφΦ Γ√τ√Γα■≥± Φτ Γφσ.
-
- *(╫α±≥ⁿ 10) Hε ≡ατΓσ AWT φσ ∞εµσ≥ ∩≡ε±≥ε τα∩ε∞φΦ≥ⁿ, ≈≥ε ß√δε Γ√ΓσΣσφε Γ
- Σαφφ√Θ Ωεφ≥σΩ±≥ Graphics Φ ∩≡εΣ≤ßδΦ≡εΓα≥ⁿ ²≥ε Γ∞σ±≥ε ≥επε, ≈≥εß√ Γ√τ√Γα≥ⁿ
- paint()?
-
- [*] HαΓσ≡φεσ, ∞εµσ≥, φε ΩαΩ Γ√ ±∞εµσ≥σ ε≥∞σφΦ≥ⁿ ≈≥ε-≥ε, ≈≥ε ≤µσ ß√δε
- φα≡Φ±εΓαφε? ╩αΩ Γ√ ±∞εµσ≥σ φα≈α≥ⁿ ≡Φ±εΓαφΦσ ταφεΓε, ± Σ≡≤πΦ∞ ±εΣσ≡µΦ∞√∞?
- ▌≥Φ ∩≡εßδσ∞√ ∞εµφε ≡σ°Φ≥ⁿ, σ±δΦ ΓΓσ±≥Φ Σε∩εδφΦ≥σδⁿφ√σ ∞σ≥εΣ√, φε ²≥ε φσ
- δ≤≈°ΦΘ Γ√⌡εΣ. Hα ∩≡αΩ≥ΦΩσ πε≡ατΣε ∩≡ε∙σ Φ∞σ≥ⁿ Γετ∞εµφε±≥ⁿ Γτπδ φ≤≥ⁿ φα
- ∞σ≥εΣ paint Φ ≤ΓΦΣσ≥ⁿ Γ±σ, ≈≥ε ß≤Σσ≥ ±Σσδαφε ∩≡Φ ∩σ≡σ≡Φ±εΓΩσ ²≥εΘ
- Ωε∞∩εφσφ≥√. ╚≥επ: ╚±∩εδⁿτ≤Θ≥σ paint(), α φσ g=getGraphics(); g.drawString(
- ...
-
- *(╫α±≥ⁿ 10) ╩επΣα ≈α±≥ε Γ√τ√Γα■ repaint(), ∩εδεΓΦφα ∞εΦ⌡ τα∩≡ε±εΓ
- ≥σ≡ σ≥± Φ φσ ε≥εß≡αµασ≥± φα ²Ω≡αφσ. ╧ε≈σ∞≤?
-
- [*] repaint() ≥εδⁿΩε ±εεß∙ασ≥ AWT, ≈≥ε Γ√ ⌡ε≥Φ≥σ, ≈≥εß√ ∩≡εΦτε°δα
- ∩σ≡σ≡Φ±εΓΩα. AWT ±εßσ≡σ≥ φσ±ΩεδⁿΩε ∩ε±δσΣεΓα≥σδⁿφ√⌡ τα∩≡ε±εΓ φα ∩σ≡σ≡Φ±εΓΩ≤
- Γ εΣΦφ, ≥αΩ ≈≥ε ß≤Σσ≥ Γ√∩εδφσφα ≥εδⁿΩε ±α∞α ∩ε±δσΣφ ∩σ≡σ≡Φ±εΓΩα. ╬ΣΦφ Φτ
- Γετ∞εµφ√⌡ εß⌡εΣφ√⌡ ∩≤≥σΘ - Φ±∩εδⁿτεΓα≥ⁿ ε≥±σΩα■∙ΦΘ ∩≡ ∞ε≤πεδⁿφΦΩ Φ
- ∩σ≡σ≡Φ±εΓ√Γα≥ⁿ ≥εδⁿΩε ≥σ ≤≈α±≥ΩΦ, Ωε≥ε≡√σ ß√δΦ Φτ∞σφσφ√.
- *(╫α±≥ⁿ 10) ╧ε≈σ∞≤ ∩εδ≤≈α■ ²≥ε ±εεß∙σφΦσ, σ±δΦ Φ±∩εδⁿτ≤■ JDK 1.1 ∩εΣ X
- Windows?
-
- java.lang.NullPointerException
- at sun.awt.motif.MFramePeer.<init>(MFramePeer.java:59)
- at sun.awt.motif.MToolkit.createFrame(MToolkit.java:153)
- at java.awt.Frame.addNotify(Frame.java)
- at java.awt.Window.pack(Window.java)
-
- [*] ┬ Γα°σΘ ±Φ±≥σ∞σ ε≥±≤≥±≥Γ≤σ≥ °≡Φ⌠≥. ╧σ≡σΦ∞σφ≤Θ≥σ font.properties Φτ
- ∩εΣΩα≥αδεπα "lib" Γ font.properties.bak. ╥επΣα JDK φσ ß≤Σσ≥ Φ±Ωα≥ⁿ
- φσ±≤∙σ±≥Γ≤■∙ΦΘ °≡Φ⌠≥.
-
- ▌≥α ∩≡εßδσ∞α ΓετφΦΩασ≥, ∩ε±ΩεδⁿΩ≤ ßΦßδΦε≥σΩΦ Motif AWT Φ±∩εδⁿτ≤■≥ °≡Φ⌠≥
- "plain Dialog 12 point" Γ Ωα≈σ±≥Γσ °≡Φ⌠≥α ∩ε ≤∞εδ≈αφΦ■. ╩ φσ±≈α±≥ⁿ■, σ±δΦ
- Φ±∩εδⁿτ≤σ≥± ≤Σαδσφφ√Θ X ±σ≡Γσ≡, ²≥ε °≡Φ⌠≥ ΦφεπΣα φσΣε±≥≤∩σφ.
-
- ─δ X ≥σ≡∞Φφαδα ΣΦαπφε±≥Φ≈σ±ΩΦσ ±εεß∙σφΦ ∞επ≤≥ ±δσπΩα ε≥δΦ≈α≥ⁿ± :
-
- % appletviewer HelloWorldApplet.html
- SIGSEGV 11* segmentation violation
- si_signo [11]: SIGSEGV 11* segmentation violation
- si_errno [0]: Error 0
- si_code [1]: SEGV_ACCERR [addr: 0x14]
-
- ─δ ≥επε, ≈≥εß√ ε∩≡σΣσδΦ≥ⁿ, ΩαΩΦσ °≡Φ⌠≥√ Φ∞σ■≥± ≤ Γα± Γ φαδΦ≈ΦΦ,
- Φ±∩εδⁿτ≤Θ≥σ Ωε∞αφΣ≤ ΓΦΣα
-
- xlsfonts > ~/fonts.txt
-
- ╟α≥σ∞ ∩≡εΘΣΦ≥σ±ⁿ ∩ε ΣδΦφφε∞≤ ±∩Φ±Ω≤ °≡Φ⌠≥εΓ Φ Γ√ßσ≡Φ≥σ ≥σ, Ωε≥ε≡√σ ⌡ε≥Φ≥σ
- Φ±∩εδⁿτεΓα≥ⁿ. ╧≡επ≡α∞∞α xfd Σσ∞εφ±≥≡Φ≡≤σ≥ Γ√ß≡αφφ√Θ °≡Φ⌠≥:
-
- xfd -fn "Φ∞ Γα°σπε °≡Φ⌠≥α" &
-
- *(Sect. 10) ╧ε≈σ∞≤ GridBagLayout ≥αΩ ±δεµφε Φ±∩εδⁿτεΓα≥ⁿ?
-
- [*] ─δ ²≥επε σ±≥ⁿ ΣΓσ ∩≡Φ≈Φφ√. ┬ε-∩σ≡Γ√⌡, ⌡ε≥ φσßεδⁿ°Φσ ≤∩αΩεΓΩΦ ΣεΓεδⁿφε
- ∩≡ε±≥√, Σσ≥αδΦτΦ≡εΓαφφα ≤∩αΩεΓΩα Σδ GUI ε≈σφⁿ ±δεµφα. ┬ε-Γ≥ε≡√⌡, ∩≡Φ
- ≡ατ≡αßε≥Ωσ GridBagLayout ≈σδεΓσ≈σ±ΩΦΘ ⌠αΩ≥ε≡ Φ ∩≡ε±≥ε≥α Φ±∩εδⁿτεΓαφΦ φσ
- ß√δΦ ε±φεΓφεΘ ÷σδⁿ■. ┼±δΦ ²≥ε Γα± ≡ατΣ≡αµασ≥ (∞σφ ²≥ε ≡ατΣ≡αµασ≥), φσ
- Φ±∩εδⁿτ≤Θ≥σ GridBagLayout. ╨ατ∞σ±≥Φ≥σ ±ΓεΘ GUI φα φσ±ΩεδⁿΩΦ⌡ ∩αφσδ ⌡ Φ
- Φ±∩εδⁿτ≤Θ≥σ Σδ ΩαµΣεΘ Φτ φΦ⌡ ±ΓεΘ ∞σφσΣµσ≡ ≤∩αΩεΓΩΦ, ≈≥εß√ Σε±≥Φ≈ⁿ φ≤µφεπε
- Γα∞ ²⌠⌠σΩ≥α. ╬⌠Φ÷Φαδⁿφεσ εß· ±φσφΦσ, Σαφφεσ ≡≤ΩεΓεΣΦ≥σδσ∞ ∩≡εσΩ≥α AWT
- ≤≈α±≥φΦΩα∞ Mountain View Java Users Group 4 ΣσΩαß≡ 1996, τΓ≤≈Φ≥ ≥αΩ:
-
- "╥αΩ ±δ≤≈Φδε±ⁿ, Φ ²≥ε ≤µσ ∩≡Φφ ≥ε Ω ±ΓσΣσφΦ■, ≈≥ε GridBagLayout
- ±δΦ°Ωε∞ ±δεµσφ Σδ ≥επε, ≈≥εß√ Γ√∩εδφ ≥ⁿ Γετδεµσφφ√σ φα φσπε ⌠≤φΩ÷ΦΦ.
- GBL ß≤Σσ≥ ∩ε-∩≡σµφσ∞≤ ∩εΣΣσ≡µΦΓα≥ⁿ± , φε ≥αΩµσ ß≤Σσ≥ Γ±Ωε≡σ Γ√∩≤∙σφ
- ≤δ≤≈°σφφ√Θ Φ ≤∩≡ε∙σφφ√Θ Γα≡Φαφ≥. ▌≥ε≥ '≤δ≤≈°σφφ√Θ GBL' ∞εµσ≥ ß√≥ⁿ
- Φ±∩εδⁿτεΓαφ Γ∞σ±≥ε GBL."
-
- ╚≥επ: φσ φ≤µφε ≥≡α≥Φ≥ⁿ ≤±ΦδΦΘ φα GBL, φα Σαφφ√Θ ∞ε∞σφ≥ ±≤∙σ±≥Γ≤■≥ ßεδσσ
- ∩≡ε±≥√σ αδⁿ≥σ≡φα≥ΦΓ√. ╩ ≥ε∞≤ µσ, GBL Γδ σ≥± ∩≡Φ≈ΦφεΘ ≤≥σ≈ΩΦ ∩α∞ ≥Φ. GBL
- Γ±≥αΓδ σ≥ "ΣεßαΓδσφφ√σ" Ωε∞∩εφσφ≥√ Γ ⌡²°-≥αßδΦ÷≤, φε
- removeLayoutComponent() Φ⌡ φΦΩεπΣα φσ ≤Σαδ σ≥. ╤∞. ε°ΦßΩ≤ φε∞σ≡ 4195295.
-
- ╥≡≤Σφε ∩≡εΘ≥Φ ∞Φ∞ε ΣεΩ≤∞σφ≥α÷ΦΦ ∩ε GBL. ╬±φεΓ√Γα ±ⁿ φα ε≈σΓΦΣφε∞ ±⌡εΣ±≥Γσ,
- σσ ∞εµφε Γτ ≥ⁿ Φτ grid layout manager Φτ Tk (Tcl/Tk). ┼±δΦ Γα∞ φσ φ≡αΓ ≥±
- Γδεµσφφ√σ ∩αφσδΦ Φ φΦ εΣΦφ Φτ Σ≡≤πΦ⌡ ∞σφσΣµσ≡εΓ ≤∩αΩεΓΩΦ φσ Σσδασ≥ ≥επε,
- ≈≥ε Γα∞ φ≤µφε (ΦδΦ Γ√ ≡αßε≥ασ≥σ ± ≤φα±δσΣεΓαφφ√∞ ΩεΣε∞, Ωε≥ε≡√Θ ≤µσ σπε
- Φ±∩εδⁿτ≤σ≥), ΣεΩ≤∞σφ≥α÷Φ Φτ Tk ∞εµσ≥ Γα∞ ∩≡ΦπεΣΦ≥ⁿ± .
-
- *(╫α±≥ⁿ 10) MyClass ≡αßε≥ασ≥ ε≥δΦ≈φε, τα Φ±Ωδ■≈σφΦσ∞ ±δ≤≈α , ΩεπΣα ⌡ε≈≤
- ≤±≥αφεΓΦ≥ⁿ Σ≡≤πεΘ °≡Φ⌠≥. ▀ φσ ∞επ≤ τα±≥αΓΦ≥ⁿ ²≥ε ≡αßε≥α≥ⁿ ∩εΣ Win95, φε ≥ε
- µσ ±α∞εσ ≡αßε≥ασ≥ ∩εΣ MacOS Φ Unix.
-
- [*] ┬√, ±Ωε≡σσ Γ±σπε, ≤ΩαταδΦ °≡Φ⌠≥, Ωε≥ε≡√Θ ε≥±≤≥±≥Γ≤σ≥ Γ Γα°σΘ ∩ε±≥αΓΩσ
- Win95; ²≥ε εΣφε Φτ ≡ατδΦ≈ΦΘ ∞σµΣ≤ ∩δα≥⌠ε≡∞α∞Φ, φα Ωε≥ε≡√σ Γ√ ∞εµσ≥σ
- φα≥εδΩφ≤≥ⁿ± , σ±δΦ Φ±∩εδⁿτ≤σ≥σ ±∩σ÷Φ⌠ΦΩ≤ εΣφεΘ Φτ ∩δα≥⌠ε≡∞, φα∩≡Φ∞σ≡,
- ταΣασ≥σ "Arial" Γ Ωα≈σ±≥Γσ °≡Φ⌠≥α Φ ≡α±±≈Φ≥√Γασ≥σ, ≈≥ε ²≥ε ß≤Σσ≥ ≡αßε≥α≥ⁿ
- φα ∩δα≥⌠ε≡∞α⌡, ε≥δΦ≈φ√⌡ ε≥ Windows.
-
- ─δ Windows 95 Φ Solaris 2.6 ²≥Φ °≡Φ⌠≥√
-
- * Dialog
- * SansSerif
- * Serif
- * Monospaced
- * Helvetica
- * TimesRoman
- * Courier
- * DialogInput
- * ZapfDingbats
-
- εßφα≡≤µσφ√ ±δσΣ≤■∙σΘ ∩≡επ≡α∞∞εΘ:
-
- import java.awt.*;
-
- class foonly {
- static public void main(String s[])
- {
- String n[]= new Frame().getToolkit().getFontList();
- for (int i=0;i<n.length; i++)
- System.out.println(n[i]);
-
- System.exit(0);
- }
- }
-
- ─≡≤πΦ∞Φ ±δεΓα∞Φ, Γ√ ∞εµσ≥σ ∩εδ≤≈Φ≥ⁿ ∞α±±ΦΓ ≥Φ∩α String Φ∞σφ °≡Φ⌠≥εΓ,
- Φ±∩εδⁿτ≤
-
- String[] fonts = Toolkit.getDefaultToolkit().getFontList()
-
- ┬∞σ±≥ε φα±≥ε ∙Φ⌡ Φ∞σφ °≡Φ⌠≥εΓ, ≥αΩΦ⌡ ΩαΩ Helvetica, TimesRoman, Φ Courier Γ
- JDK 1.1 ß√δε ε≥Σαφε ∩≡σΣ∩ε≈≥σφΦσ ±≥Φδ ∞, ≥αΩΦ∞, ΩαΩ SansSerif, Serif, Φ
- Monospaced (±εε≥Γσ≥±≥Γσφφε). ╤≥Φδⁿ °≡Φ⌠≥α ß≤Σσ≥ ε≥εß≡αµα≥ⁿ± Γ φαΦßεδσσ
- ∩εΣ⌡εΣ ∙ΦΘ °≡Φ⌠≥ Σδ ΣαφφεΘ ∩δα≥⌠ε≡∞√.
-
- ┬ φα±≥ε ∙ΦΘ ∞ε∞σφ≥ Σδ ε≥εß≡αµσφΦ ±≥ΦδσΘ Γ Φ∞σφα ±Φ±≥σ∞φ√⌡ °≡Φ⌠≥εΓ
- Φ±∩εδⁿτ≤■≥± τα∩Φ±Φ Γ εΣφε∞ Φτ ⌠αΘδεΓ font.properties Γ $JAVAHOME/lib.
- ╚∞σσ≥± φσ±ΩεδⁿΩε ⌠αΘδεΓ font.properties, ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ ≡ατφ√∞
- δεΩαδΦτα÷Φ ∞. ┼±δΦ Γα∞ φ≤µφε ß√±≥≡ε ∩≡ε≥σ±≥Φ≡εΓα≥ⁿ φεΓ√Θ °≡Φ⌠≥, Γ√ ∞εµσ≥σ
- Φτ∞σφΦ≥ⁿ ⌠αΘδ ΦδΦ Σε∩εδφΦ≥ⁿ σπε ≥αΩ, ≈≥ε ε≥εß≡αµσφΦσ ß≤Σσ≥ ∩≡εΦτΓεΣΦ≥ⁿ± Γ
- ≥ε≥ °≡Φ⌠≥, Ωε≥ε≡√Θ Γ√ ⌡ε≥Φ≥σ ∩≡εΓσ≡Φ≥ⁿ.
-
- *(╫α±≥ⁿ 10) ▀ ±ετΣαδ Lightweight-Ωε∞∩εφσφ≥≤ (Ωε∞∩εφσφ≥≤, φσ∩ε±≡σΣ±≥Γσφφε
- ≡α±°Φ≡ ■∙≤■ Ωδα±± Component), φε εφα ∞σ≡÷ασ≥/φσ ∩σ≡σ≡Φ±εΓ√Γασ≥± ΩαΩ
- ±δσΣ≤σ≥. ╧ε≈σ∞≤?
-
- [*] Lightweight-Ωε∞∩εφσφ≥√, ∩ε±ΩεδⁿΩ≤ εφΦ ±≈Φ≥α■≥± "∩≡ετ≡α≈φ√∞Φ", φσ
- ∩σ≡σ≡Φ±εΓ√Γα■≥± φσ∩ε±≡σΣ±≥Γσφφε Γ ε≥Γσ≥ φα repaint(). ╘αΩ≥Φ≈σ±ΩΦ
- Component.repaint() ∩≡ε±∞α≥≡ΦΓασ≥ ±≥σΩ Ωε∞∩εφσφ≥ ±φΦτ≤ ΓΓσ≡⌡, φα⌡εΣΦ≥
- "φσ∩≡ετ≡α≈φ≤■" Heavyweight-Ωε∞∩εφσφ≥≤ (εφα Σεδµφα ß√≥ⁿ Ωεφ≥σΘφσ≡ε∞), Φ
- τα≥σ∞ Γ√τ√Γασ≥ *σσ* ∞σ≥εΣ repaint().
-
- ╚τ ²≥εΘ ≥ε≈ΩΦ ≤∩≡αΓδσφΦσ Γ Φ≥επσ ∩σ≡σΣασ≥± ∞σ≥εΣ≤ Container.update().
- ╧σ≡Γεσ, ≈≥ε εφ Σσδασ≥ - Γ√τ√Γασ≥ super.update, ∩≡ΦΓεΣ φα± Ω
- Component.update(), Ωε≥ε≡√Θ ε≈Φ∙ασ≥ Ωε∞∩εφσφ≥≤ ÷Γσ≥ε∞ ⌠εφα, ∩ε±ΩεδⁿΩ≤ εφ
- ß√δ Γ√τΓαφ Σδ heavyweight-Ωε∞∩εφσφ≥√, Φ ταΓσ≡°ασ≥± . ╟α≥σ∞
- Container.update() Γ√τ√Γασ≥ update ≡σΩ≤≡±ΦΓφε Σδ Γ±σ⌡
- Lightweight-Ωε∞∩εφσφ≥, Ωε≥ε≡√σ ²≥ε≥ Ωεφ≥σΘφσ≡ ±εΣσ≡µΦ≥.
-
- ╚≥επ: "∩≡ετ≡α≈φε±≥ⁿ" lightweight-Ωε∞∩εφσφ≥ ß≤Σσ≥ ≡αßε≥α≥ⁿ ∩≡αΓΦδⁿφε (ßστ
- ∞σ≡÷αφΦ ) σ±δΦ ∩σ≡Γα Σε±≥≤∩φα Γ√°σ ∩ε Φσ≡α≡⌡ΦΦ ΓΩδ■≈σφΦ
- heavyweight-Ωε∞∩εφσφ≥α Γδ σ≥±
-
- * heavyweight-Ωε∞∩εφσφ≥εΘ ± ΣΓεΘφεΘ ß≤⌠σ≡Φτα÷ΦσΘ (εφα Σεδµφα ß√≥ⁿ
- Ωεφ≥σΘφσ≡ε∞), ΦδΦ
- * heavyweight-Ωε∞∩εφσφ≥εΘ, Ωε≥ε≡α φΦΩεπΣα φσ εßφεΓδ σ≥± , α ≥εδⁿΩε
- ∩σ≡σ≡Φ±εΓ√Γασ≥± (≥.σ. ≥αΩεΘ, πΣσ ∞σ≥εΣ update() ∩σ≡σΩ≡√≥ Φ ⌠εφ ∩ε
- ≤∞εδ≈αφΦ■ φσ ε≈Φ∙ασ≥± ).
-
- ┼±δΦ ²≥ε φσ ±Σσδαφε, update() ∩ε ≤∞εδ≈αφΦ■ ß≤Σσ≥ Γ±σπΣα ε≈Φ∙α≥ⁿ ⌠εφ ∩σ≡σΣ
- ΩαµΣεΘ ∩σ≡σ≡Φ±εΓΩεΘ, Γ√τ√Γα φσ∩≡Φ ≥φεσ ∞σ≡÷αφΦ■.
-
- ─≡≤πεΘ Γαµφ√Θ ∞ε∞σφ≥ ±ε±≥εΦ≥ Γ ≥ε∞, ≈≥ε σ±δΦ Γα° Ωεφ≥σΘφσ≡ ε∩≡σΣσδ σ≥
- ±εß±≥Γσφφ√Θ ∞σ≥εΣ paint(), ≥ε εφ εß ταφ Γ√τ√Γα≥ⁿ super.update/paint(),
- Φφα≈σ ±εΣσ≡µα∙Φσ± Γ φσ∞ lightweight-Ωε∞∩εφσφ≥√ φΦΩεπΣα φσ ß≤Σ≤≥
- ∩σ≡σ≡Φ±εΓαφ√. ╤εß≡αΓ ²≥ε ΓεσΣΦφε, ∞√ ΓΦΣΦ∞, ≈≥ε Γ Σαφφε∞ ±δ≤≈ασ Σδ
- φε≡∞αδⁿφεΘ ≡αßε≥√ φ≤µφε Γφσ±σφΦσ ∞ΦφΦ∞αδⁿφ√⌡ Φτ∞σφσφΦΘ Γ ΩεΣ - ∩ε∞σ±≥Φ≥ⁿ
- ∞σ≥εΣ
-
- public void update(Graphics g) {
- super.paint(g);
- }
-
- Γ ßδΦµαΘ°ΦΘ Γ Φσ≡α≡⌡ΦΦ Ωε∞∩εφσφ≥ heavyweight-Ωεφ≥σΘφσ≡, ±εΣσ≡µα∙ΦΘ
- lightweight-Ωε∞∩εφσφ≥√, Ωε≥ε≡√σ φΦ≈σπε φσ Γ√ΓεΣ ≥ Γ ≥σ⌡ εßδα±≥ ⌡, Ωε≥ε≡√σ
- ≤µσ ß√δΦ ∩≡ε≡Φ±εΓαφ√ Φ⌡ ≡εΣΦ≥σδ ∞Φ, ≥.σ. "φσ∩≡ετ≡α≈φ√σ" Ωε∞∩εφσφ≥√. ├≡ τφε,
- φε ß√±≥≡ε.
-
- ┼±δΦ Γ√ ⌡ε≥Φ≥σ φε≡∞αδⁿφε ≡αßε≥α≥ⁿ ± ∩≡ετ≡α≈φ√∞Φ Ωε∞∩εφσφ≥α∞Φ, ε∩Φ±αφφ√Θ
- Γ√°σ ∞σ≥εΣ τα∞σφ σ≥± φα
-
- public void update(Graphics g) {
- // ±≥αφΣα≡≥φεσ ±ετΣαφΦσ Γφσ²Ω≡αφφεπε Ωεφ≥σΩ±≥α.
- offg.fillRect(φ≤µφ√Θ ÷Γσ≥ ⌠εφα, ∩εδφ√Θ ≡ατ∞σ≡);
- super.paint(offg);
- g.drawImage(myimage, 0, 0, null);
- }
-
- public void paint(Graphics g) {
- // φα ±δ≤≈αΘ Φτ∞σφσφΦ ≡ατ∞σ≡α ∞εµσ≥ Γφα≈αδσ Γ√τ√Γα≥ⁿ update().
- super.paint(offg);
- g.drawImage(myimage, 0, 0, null);
- }
-
- ╚⌡ ∞εµφε εß·σΣΦφΦ≥ⁿ, σ±δΦ τα±≥αΓΦ≥ⁿ this.update() Γ√τ√Γα≥ⁿ this.paint(), ±
- ∩εΣ±≥αφεΓΩεΘ ≡ατδΦ≈φ√⌡ τφα≈σφΦΘ ∩α≡α∞σ≥≡εΓ, φε ∩≡ε∙σ Γ±σπε ∩σ≡σΩ≡√≥ⁿ Φ⌡ ∩ε
- ε≥Σσδⁿφε±≥Φ, ΩαΩ Γ ∩≡Φ∞σ≡σ.
-
- *(╫α±≥ⁿ 10) ┬ ≈σ∞ ≡ατφΦ÷α ∞σµΣ≤ ∞σ≥εΣε∞ setForeground(Color c) Ωδα±±α
- Component Φ setColor(Color c) Ωδα±±α Graphics?
-
- [*] ┬ε ∩σ≡Γ√⌡, ²≥Φ ΣΓα ∞σ≥εΣα Σσδα■≥ εΣφε Φ ≥εµσ: ≤±≥αφαΓδΦΓα■≥ ÷Γσ≥ Γ
- τφα≈σφΦσ ∩α≡α∞σ≥≡α. ╨ατφΦ÷α Γ ≥ε∞, πΣσ ²≥ε Φ±∩εⁿτ≤σ≥± . ┼±≥ⁿ σ∙σ
- Component.setBackground, Ωε≥ε≡√Θ ≤±≥αφαΓδΦΓασ≥ ÷Γσ≥ ⌠εφα.
-
- ┼±δΦ ┬√ ∩Φ°Φ≥σ Ωεφ±≥≡≤Ω≥ε≡ ΦδΦ εß≡αßε≥≈ΦΩ ±εß√≥Φ (Γ≡εΣσ "Hαµ∞Φ≥σ τΣσ±ⁿ
- ≈≥εß√ ±Σσδα≥ⁿ ≡Φ±≤φεΩ ±ΦφΦ∞"), ≥ε ≤ Γα± σ±≥ⁿ Component Φ φ≤µφε Φ±∩εδⁿτεΓα≥ⁿ
- ∞σ≥εΣ setForeground(). └ Γε≥ Γ ∞σ≥≥εΣσ paint() ≤ Γα± σ±≥ⁿ α≡π≤∞σφ≥ ≥Φ∩α
- Graphics, Φ ∩ε²≥ε∞≤ εß√≈φε Φ±∩εδⁿτ≤σ≥± g.setColor(c).
-
- ┬ ε≥δΦ≈Φσ ε≥ Ωδα±±α Component, Ωδα±± Graphics φσ Φ∞σσ≥ φσταΓΦ±Φ∞√⌡ ÷Γσ≥α
- ⌠εφα Φ ÷Γσ≥α ≡Φ±≤φΩα. ├≡α⌠Φ≈σ±ΩΦΘ εßⁿσΩ≥ ∩ε±≥≤∩ασ≥ ± ÷Γσ≥ε∞, ∩εδ≤≈σφ√∞ ε≥
- ≡Φ±≤σ∞εΘ ∩εΓσ≡⌡φε±≥Φ. Hε ∩ε±δσ Γ√τεΓα setColor() Γ± π≡α⌠ΦΩα ß≤Σσ≥
- ≡Φ±εΓα≥ⁿ± ≤Ωαταφ√∞ ÷Γσ≥ε∞. ╥αΩ ΩαΩ ²≥Φ ∞σ≥εΣ√ Σσδα■≥ ≡ατφ√σ Γσ∙Φ, φατΓαφ√
- εφΦ ∩ε ≡ατφε∞≤.
-
- *(╫α±≥ⁿ 10) ╩επΣα ΣΓΦπα■ ∞√°ⁿ■ ± φαµα≥εΘ Ωφε∩ΩεΘ Γ Component Φ τα≥σ∞
- ±ΣΓΦπα■ ∞√°ⁿ ± Component, ≥ε Γ±σ ±εß√≥Φ ∩ε±√δα■≥± Γ ≥ε≥ Component, ⌡ε≥
- Ω≤≡±ε≡ Φ Γφσ σπε. ▌≥ε ε°ΦßΩα?
-
- [*] Hσ≥, ²≥ε ε±εßεσ ±ΓεΘ±≥Γε. ─εΩ≤∞σφ≥α÷Φ ε Java API πδα±Φ≥:
-
- "... ╧≡Φ φαµα≥εΘ Ωφε∩Ωσ ∞√°Φ ±εß√≥Φ ε ΣΓΦµσφΦΦ ∞√°Φ ∩ε±√δα■≥± Γ
- Ωε∞∩εφσφ≥ Σαµσ ΩεπΣα Ω≤≡±ε≡ Γ√⌡εΣΦ≥ τα ∩≡σΣσδ√ Ωε∞∩εφσφ≥α. ▌≥ε
- ∩≡εΣεδµασ≥± Σε ≥σ⌡ ∩ε≡, ∩εΩα Ωφε∩Ωα φσ ß≤Σσ≥ ε≥∩≤∙σφα..."
-
- ▌≥ε ±Σσδαφε Σδ ≤Σεß±≥Γα Φ εßδσπ≈σφΦ ∩≡επ≡α∞∞Φ≡εΓαφΦ . ┬√ ∞εµσ≥σ
- εß≡αßα≥√Γα≥ⁿ "∩≡σ≥α±ΩΦΓαφΦ " ± ∞σ±≥ε φα ∞σ±≥ε. ┼±δΦ ²≥ε Γα∞ φσ φ≤µφε, ≥ε
- ∩≡ε±≥ε ∩≡εΓσ≡≥σ Ωεε≡ΣΦφα≥√ ±εß√≥Φ , Φ Φπφε≡Φ≡≤Θ≥σ Φ⌡, σ±δΦ εφΦ ∩≡εΦ±⌡εΣ ≥
- Γφσ Ωε∞∩εφσφ≥α.
-
- *(╫α±≥ⁿ 10) ╧ε≈σ∞≤ ∞εΦ εΩφα φσ ταΩ≡√Γα■≥± , ΩεπΣα φαµΦ∞α■ φα Ωφε∩Ω≤
- ταΩ≡√≥Φ Γ ταπεδεΓΩσ?
-
- [*] ┬ε≥ ΩαΩ φ≤µφε Σσδα≥ⁿ:
-
- * JDK 1.0.2: ∩σ≡σ⌡Γα≥√ΓαΘ≥σ Event.WINDOW_DESTROY Φ Γ√τ√ΓαΘ≥σ ∞σ≥εΣ√
- hide() Φ dispose() Σδ Frame.
- * JDK 1.1:
- o ╤δ≤°αΘ≥σ ±εß√≥Φ WindowEvent Φ Γ ∞σ≥εΣσ windowClosing() Γ√τ√ΓαΘ≥σ
- hide() Φ dispose(). ▌≥ε Σεδµφε ß√δε ß√≥ⁿ ΣσΘ±≥ΓΦσ ∩ε ≤∞εδ≈αφΦ■, Φ
- φαΩεφσ÷ ²≥ε ±Σσδαφε Γ Swing'εΓ±Ωε∞ JFrame.
- o ╨ατ≡σ°Φ≥σ ±εß√≥Φ ≥Φ∩α AWTEvent.WINDOW_CLOSING Φ Γ√τ√ΓαΘ≥σ hide()
- Φ dispose() Γ σ≥εΣσ processWindowEvent().
- * JDK 1.2: ╩ε∞∩εφσφ≥ JFrame ∩ε ≤∞εδ≈αφΦ■ ±α∞ ταΩ≡√Γσ≥± ∩≡Φ φαµα≥ΦΦ φα
- Ωε∩Ω≤ ταΩ≡√≥Φ (±∞. ≡ατΣσδ 10).
-
- *(╫α±≥ⁿ 10) ╩αΩ ∩≡Φφ≤ΣΦ≥σδⁿφε ±Φφ⌡≡εφΦτΦ≡εΓα≥ⁿ π≡α⌠Φ≈σ±ΩΦσ ε∩σ≡α÷ΦΦ,
- φα∩≡Φ∞σ≡, ±∞σφ≤ Ω≤≡±ε≡α ΦδΦ αφΦ∞α÷Φ■?
-
- [*] ▌≥ε Σσδασ≥± ∞σ≥εΣε∞ sync() Γ Toolkit. ┬ε≥ ≥αΩ:
-
- AnyComponent.getToolkit().sync();
-
- *(╫α±≥ⁿ 10) ╩αΩ ± ∩ε∞ε°ⁿ■ ΩδαΓΦ°Φ Tab ∩σ≡σΣΓΦπα≥ⁿ ⌠εΩ≤± ∩ε Ωε∞∩εφσφ≥α∞?
-
- [*] ┬ JDK 1.0 ┬√ Σεδµφ√ ±α∞Φ ≡σαπΦ≡εΓα≥ⁿ φα φαµα≥Φσ ΩδαΓΦ° Φ ±α∞ε∞≤
- ∩≡επ≡α∞∞Φ≡εΓα≥ⁿ ∩σ≡σΣΓΦµσφΦ■. JDK 1.1 ∩εΣΣσ≡µΦΓασ≥ Tab Φ Shift+Tab (φαταΣ)
- αΓ≥ε∞α≥Φ≈σ±ΩΦ. ╘εΩ≤± ∩σ≡σΣΓΦπασ≥± Γ ≥ε∞ ∩ε≡ ΣΩσ, Γ ΩαΩε∞ Ωε∞∩εφσφ≥√ ß√δΦ
- ∩ε∞σ∙σφ√ Γ Ωεφ≥σΘφσ≡.
-
- *(╫α±≥ⁿ 10) ┬ ≈σ∞ ≡ατφΦ÷α ∞σµΣ≤ "φΦτΩε≤≡εΓφσΓ√∞Φ" Φ "±σ∞αφ≥Φ≈σ±ΩΦ∞Φ"
- ±εß√≥Φ ∞Φ?
-
- [*] HΦτΩε≤≡εΓφσΓ√σ ±εß√≥Φ ±Γ ταφ√ ± ΩεφΩ≡σ≥φ√∞ Ωε∞∩εφσφ≥ε∞ (Φτ∞σφσφΦσ
- ≡ατ∞σ≡α εΩφα, ΣΓΦµσφΦσ ∞√°ⁿ■, φαµα≥Φσ ΩδαΓΦ°Φ, ΣεßαΓδσφΦσ Ωε∞∩εφσφ≥α Γ
- Ωεφ≥σΘφσ≡ Φ ≥.∩.). ╤σ∞αφ≥Φ≈σ±ΩΦσ ±εß√≥Φ ΓετφΦΩα■≥, ΩεπΣα ┬√ ΣσΘ±≥Γ≤σ≥σ φα
- ≤∩≡αΓδ ■∙ΦΘ Ωε∞∩εφσφ≥ (ΣΓΦπασ≥σ δΦφσΘΩ≤ ∩≡εΩ≡≤≥ΩΦ, φαµΦ∞ασ≥σ φα Ωφε∩Ω≤,
- Γ√ßΦ≡ασ≥σ ∩≤φΩ≥ ∞σφ■ Φ ≥.∩.), Φ ≥αΩεΘ ≥Φ∩ ±εß√≥ΦΘ ∞εµσ≥ ß√≥ⁿ πσφσ≡Φ≡εΓαφ
- φσ±ΩεδⁿΩΦ∞Φ ≡ατφ√∞Φ Ωε∞∩εφσφ≥α∞Φ. Button Φ List πσφσ≡Φ≡≤■≥ ±εß√≥Φσ Action
- ΩεπΣα ┬√ φα φΦ⌡ φαµΦ∞Φσ≥σ.
-
- ╤α∞√∞ πδαΓφ√∞ Σδ ∩≡επ≡α∞∞Φ±≥α Γδ σ≥± ≥ε, ≈≥ε ┬√ ∞εµσ≥σ Φτ∞σφ ≥ⁿ
- φΦτΩε≤≡εΓφσΓ√σ ±εß√≥Φ , ΩαΩ, φα∩≡Φ∞σ≡, τφα≈σφΦσ ΩδαΓΦ°Φ Γ ±εß√≥ΦΦ ε φαµα≥ΦΦ
- ΩδαΓΦ°Φ, ∩≡Φ ²≥ε∞ φεΓεσ τφα≈σφΦσ ß≤Σσ≥ ε≥εß≡αµσφε. ╩≡ε∞σ ≥επε, ┬√ ±α∞Φ
- ∞εµσ≥σ "∩ε≥≡σßΦ≥ⁿ" ≥αΩεσ ±εß√≥Φσ, Φ εφε φσ ß≤Σσ≥ Σε±≥αΓδσφε Ωε∞∩εφσφ≥≤. Hε
- ± ±σ∞αφ≥Φ≈σ±ΩΦ∞Φ ±εß√≥Φ ∞Φ ≥αΩεσ φσ ∩≡εΘΣσ≥ - εφΦ ≤µσ ∩ε∩αδε Γ Ωε∞∩εφσφ≥.
-
- ╤σ∞αφ≥Φ≈σ±ΩΦσ ±εß√≥Φ : Φ±∩εδⁿτ≤Θ≥σ addXListener() ≈≥εß√ ΣεßαΓΦ≥ⁿ ±δ≤°α≥σδ ,
- Ωε≥ε≡√Θ ≡σαδΦτ≤σ≥ Φφ≥σ≡⌠σΘ± XListener Φ ∞εµσ≥ ∩εδ≤≈α≥ⁿ ±εß√≥Φ ≥Φ∩α XEvent.
- HΦτΩε≤≡εΓφσΓ√σ ±εεß√≥Φ : Φ±∩εδⁿτ≤Θ≥σ ∞σ≥εΣ enableEvents() Φ ∩σ≡σΩ≡εΘ≥σ
- performX(), ≈≥εß√ ∩σ≡σ⌡Γα≥√Γα≥ⁿ ±εß√≥Φ Γ ±α∞ε∞ εß·σΩ≥σ.
-
- *(╫α±≥ⁿ 10) ┬ετ∞εµφε δΦ ±Σσδα≥ⁿ ≥αΩ, ≈≥εß√ εΩφε Γ Java ∩δαΓαδε ∩εΓσ≡⌡
- Σ≡≤πΦ⌡? Hα∩≡Φ∞σ≡, ΩεδεφΩα Φφ±≥≡α∞σφ≥εΓ ∩δαΓασ≥ φαΣ εß√≈φ√∞Φ εΩφα∞Φ, Γ
- Ωε≥ε≡√⌡ ²≥Φ Φφ±≥≡≤∞σφ≥√ Φ±∩εδⁿτ≤■≥± ...
-
- [*] ┬ MS Windows εßⁿσΩ≥ ≥Φ∩α Window ∩δαΓασ≥ ∩εΓσ≡⌡ Σ≡≤πΦ⌡ εΩεφ, Γ ε≥δΦ≈Φσ
- ε≥ Frame, Ωε≥ε≡√Θ φα⌡εΣΦ≥± ΓφΦτ≤ ΩαΩ εß√≈φεσ εΩφε. ≥αΩεσ ∩εΓσΣσφΦσ Σασ≥
- "∩δαΓα■∙ΦΘ" ²⌠⌠σΩ≥. Hε εß τα≥σδⁿφε δΦ Σεδµφε Window ∩δαΓ≥ⁿ ∩εΓσ≡⌡ Σ≡≤πΦ⌡ -
- ²≥ε ±εΓσ≡°σφφε Σ≡≤πεΘ Γε∩≡ε±.
-
- Hα ╠αΩΦφ≥ε°α⌡ Window δΦßε δσµΦ≥ ≥αΩ µσ ΩαΩ Φ εß√≈φ√σ εΩφα, δΦßε ∩εδφε±≥ⁿ■
- ∞εΣαδⁿφεσ - Γ ταΓΦ±Φ∞ε±≥Φ ε≥ VM, Ωε≥ε≡≤■ ┬√ Φ±∩εδⁿτ≤σ≥σ. ┬ Java φσ≥ δσπΩεπε
- ±∩ε±εßα ΣεßΦ≥ⁿ± ≥αΩεπε ∩εΓσΣσφΦ . ┼±δΦ Ω≥ε-φΦß≤Σⁿ τφασ≥ ≥αΩεΘ ±∩ε±εß,
- ∩εµαδ≤Θ±≥α, ∩εΣσδΦ≥σ±ⁿ.
-
- *(╫α±≥ⁿ 10) ╠επ≤ δΦ ±Γσ≡φ≤≥ⁿ/≡ατΓσ≡φ≤≥ⁿ εΩφε Γ Java?
-
- [*] ┬ JDK 1.1 φσ ß√δε ±∩ε±εßα ±Σσδα≥ⁿ ²≥ε. ┬ JDK 1.2 ²≥α Γετ∞εµφε±≥ⁿ
- ∩ε ΓΦδα±ⁿ:
-
- MyFrame.setState( Frame.ICONIFIED );
- MyFrame.setState( Frame.NORMAL );
-
- Σσδασ≥ ²≥ε. ╙±≥αφεΓΦ≥σ φ≤µφεσ ±ε±≥ε φΦσ.
-
- *(╫α±≥ⁿ 10) ╩αΩ ≤τφα≥ⁿ, ΩαΩα Ωφε∩Ωα ∞√°Φ ß√δα φαµα≥α Φ ±ΩεδⁿΩε ≡ατ?
-
- [*] ─δ εß≡αßε≥ΩΦ ±εß√≥ΦΘ ∞√°Φ ┬√ Σεδµφ√ ε±≤∙σ±≥ΓΦ≥ⁿ Φφ≥σ≡⌠σΘ±
- MouseListener δΦßε ≡α±°Φ≡Φ≥ⁿ Ωδα±± MouseAdapter Φ ≈≥εß√ ∩σ≡σε∩≡σΣσδΦ≥ⁿ εΣΦφ
- Φτ ∞σ≥εΣεΓ εß≡αßε≥ΩΦ ±εß√≥ΦΘ ∞√°Φ. └≡π≤∞σφ≥ ≥Φ∩α MouseEvent, ∩σ≡σΣαΓασ∞√Θ Γ
- ∞σ≥εΣ√, ±εΣσ≡µΦ≥ ∩εδ , πεΓε≡ ∙Φσ ε ≥ε∞, ΩαΩα Ωφε∩Ωα φαµα≥α, Φ ±≈σ≥≈ΦΩ
- φαµα≥ΦΘ. ╚±∩εδⁿτ≤Θ≥σ ≈≥ε-≥ε Γ≡εΣσ:
-
- public void mouseClicked(MouseEvent m) {
- boolean leftButtonPush =
- (m.getModifiers() & java.awt.event.InputEvent.BUTTON1_MASK) != 0;
- boolean centerButtonPush =
- (m.getModifiers() & java.awt.event.InputEvent.BUTTON2_MASK) != 0;
- boolean rightButtonPush =
- (m.getModifiers() & java.awt.event.InputEvent.BUTTON3_MASK) != 0;
-
- int click = m.getClickCount(); // ∞εµσ≥ ß√≥ⁿ 1, 2, 3 ∙σδ≈Ωα ΦδΦ ßεδⁿ°σ
-
- ┬√ ∞εµσ≥σ Γ√τΓα≥ⁿ m.isPopupTrigger(). ┼±δΦ ²≥ε≥ ∞σ≥εΣ ΓετΓ≡α∙ασ≥ true, ≥ε
- ∩εδⁿτεΓα≥σδⁿ τα∩≡ε±Φδ Γ±∩δ√Γα■∙σσ ∞σφ■. ┬ε ∞φεπΦ⌡ ±Φ±≥σ∞α⌡ ∩≡αΓα Ωφε∩Ωα
- ±δ≤µΦ≥ Σδ Γ√τεΓα ≥αΩΦ⌡ ∞σφ■.
-
- ┬√ ∞εµσ≥σ ∩σ≡σΩ≡√≥ⁿ ∞σ≥εΣ processMouseEvent Σδ ┬α°σπε Ωε∞∩εφσφ≥α.
-
- public void processMouseEvent(MouseEvent e) {
- if (e.isPopupTrigger()) {
- // ΣσδαΘ≥σ ≈≥ε ⌡ε≥Φ≥σ
- }
- else
- super.processMouseEvent(e);
- }
-
- ▌≥ε≥ ΩεΣ ∩εΣ⌡εΣΦ≥ Σδ JDK 1.1. ╩≡ε∞σ ≥επε, Γ JDK 1.2 ∞εµφε Γ√τΓα≥ⁿ
- java.awt.swing.SwingUtilities.isRightMouseButton(MouseEvent me).
-
- ╤∞. Γε∩≡ε± 15.10.
-
- ------------------------------
-
- 11. Swing
-
- 1. (╫α±≥ⁿ 11) ╫≥ε ≥αΩεσ Swing?
-
- [*] Swing - ²≥ε φεΓα εΩεφφα ßΦßδΦε≥σΩα, ΓΩδ■≈σφα Γ JDK 1.2, Φ
- Σε±≥≤∩φα ΩαΩ Σε∩εδφΦ≥σδⁿφα ßΦßδΦε≥σΩα Σδ JDK 1.1. Swing Γ⌡εΣΦ≥ Γ
- Java Foundation Classes Φ ∩εΣΣσ≡µΦΓασ≥ εΩεφ≤■ ßΦßδΦε≥σΩ≤, Ωε≥ε≡α Σασ≥
- ≡ατ≡εßε≥≈ΦΩα∞ ±ετΣαΓα≥ⁿ Ωε∞∩εφσφ≥√, Ωε≥ε≡√σ ∞επ≤≥ Φ∞σ≥ⁿ Φτ∞σφ σ∞√Θ
- Γφσ°φΦΘ ΓΦΣ Φ ∩εΓσΣσφΦσ. ╤ ≥ε≈ΩΦ τ≡σφΦ α≡⌡Φ≥σΩ≥≤≡√, Swing ≡α±°Φ≡ σ≥
- (φε φσ τα∞σφ σ≥ ∩εδφε±≥ⁿ■) Abstract Windowing Toolkit (AWT).
-
- Swing ±εΣσ≡µΦ≥ ∞φεµσ±≥Γε Ωε∞∩εφσφ≥, Ωε≥ε≡√σ ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ Γ∞σ±≥ε
- Ωε∞∩εφσφ≥εΓ AWT (JFrame Γ∞σ±≥ε Frame, JButton Γ∞σ±≥ε Button, JApplet
- Γ∞σ±≥ε Applet, JPanel Γ∞σ±≥ε Panel Φ ≥.∩.) ╩≡ε∞σ ≥επε, σ±≥ⁿ σ±≥ⁿ
- Ωε∞∩εφσφ≥√, φσ Φ∞σ■∙Φσ αφαδεπεΓ Γ AWT (∩αφσδΦ Φ δΦφσΘΩΦ Φφ±≥≡≤∞σφ≥εΓ,
- δΦφσΘΩΦ ∩≡επ≡σ±±α Φ Σ≡.) ╥σ∞ φσ ∞σφσ, Γ ε±φεΓσ Swing δσµΦ≥ AWT.
-
- Swing ∩ετΓεδ σ≥ ±ετΣαΓα≥ⁿ Ωε∞∩εφσφ≥√ ±≥εδⁿ µσ ±δεµφ√σ, ΩαΩ Φ Γ
- ∩δα≥⌠ε≡∞ε-ταΓΦ±Φ∞√⌡ εΩεφφ√⌡ ßΦßδΦε≥σΩα⌡, ΩαΩ, φα∩≡Φ∞σ≡, MFC - Φ Γ
- ±εε≥Γσ≥±ΓΦ ± ∩≡σΦ∞≤∙σ±Γα∞Φ Java, Γ±σ ²≥ε ß≤Σσ≥ ≡αßε≥α≥ⁿ φα δ■ß√⌡
- ∩δα≥⌠ε≡∞α⌡. ╚τ∞σφ σ∞√Θ Γφσ°φΦΘ ΓΦΣ ετφα≈ασ≥, ≈≥ε Ωε∞∩εφσφ≥√ ∞επ≤≥
- Φ∞σ≥ⁿ εΣΦφαΩεΓ√Θ ΓΦΣ φα δ■ßεΘ ∩δα≥⌠ε≡∞σ, ΦδΦ µσ ┬√ ∞εµσ≥σ ±Σσδα≥ⁿ ≥αΩ,
- ≈≥ε εΩφα ß≤Σ≤≥ Γ√πδ Σσ≥ⁿ Γ ±≥Φδσ Windows φα PC, Γ ±≥Φδσ Motif - φα
- Unix-±≥αφ÷ΦΦ, δΦßε ∩ε Γ√ßε≡≤ ∩εδⁿτεΓα≥σδ .
-
- ╩≡ε∞σ ≥επε, Swing ∩εΣσ≡µΦΓασ≥ Accessiblity API. ▌≥ε≥ API ∩ετΓεδ σ≥
- αΣα∩≥Φ≡≤■∙Φ∞ ∩≡επ≡α∞∞α∞ Σδ δ■ΣσΘ ± ⌠ΦτΦ≈σ±ΩΦ∞Φ φσΣε±≥α≥Ωα∞Φ φα∩≡σ∞≤■
- ΓταΦ∞εΣσΘ±≥ΓεΓα≥ⁿ ± Java VM Φ ∩εδ≤≈α≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε Γ√∩εδφ σ∞εΘ
- ∩≡επ≡α∞∞σ; ²≥ε ∩≡Φ∞σφ σ≥± Σδ ≡αßε≥√ ± Ωε∞∩εφσφ≥α∞Φ. ╧≡επ≡α∞∞√ ∞επ≤≥
- τα≥σ∞ ∩σ≡σΓσ±≥Φ ²≥ε Γ ⌠ε≡∞≤, Σε±≥≤∩φ≤■ ∩εδⁿτεΓα≥σδ■ (φα∩≡Φ∞σ≡,
- ∩≡ε≈Φ≥α≥ⁿ Γ±δ≤⌡ ≥σΩ±≥ Γ εΩφσ). Swing φσ Φ±∩εδⁿτ≤σ≥ ∩δα≥⌠ε≡∞ε-ταΓΦ±Φ∞√σ
- Ωε∞∩εφσφ≥√, α αΣα∩≥ΦΓφ√σ ∩≡επ≡α∞∞√ ≡α±≈Φ≥αφ√ φα ε∩≡Σσδσφφ≤■ ∩δα≥⌠ε≡∞≤,
- Accessiblity API ±δ≤µΦ≥ ∞ε±≥ε∞ ∞σµΣ≤ Swing Φ ∩≡επ≡α∞∞εΘ αΣα∩≥α÷ΦΦ.
- ─ε±≥εΦφ±≥Γε∞ Accessiblity API Γδ σ≥± ≥ε, ≈≥ε Σδ σπε ∩εΣΣσ≡µΩΦ
- ≡ατ≡αßε≥≈ΦΩα∞ φ≤µφε ±Σσδα≥ⁿ ±εΓ±σ∞ φσ∞φεπε, εφΦ Σεδµφ√ ±ετφαΓα≥ⁿ ²≥ε,
- σ±δΦ ±εßΦ≡α■≥± ΣεßεΓδ ≥ⁿ φεΓ√σ Ωε∞∩εφσφ≥√.
-
- ┬ Swing ∩δα≥⌠ε≡∞ε-ταΓΦ±Φ∞√∞Φ Γδ ■≥± δΦ°ⁿ Ω≡α εΩφα, α ≥αΩµσ ≥αΩΦσ
- Γσ∙Φ, ΩαΩ °≡Φ⌠≥√ Φ ß≤⌠⌠σ≡√. ┬±σ ε±≥αδⁿφεσ - Ωε∞∩ετΦ÷Φ , ≡α±∩εδεµσφΦσ Φ
- ε≥≡Φ±εΓΩα - Ωεφ≥≡εδΦ≡≤σ≥± ∩≡επ≡α∞∞φ√∞ ΩεΣε∞ φα Java. ╥αΩΦ∞ εß≡ατε∞,
- εΣΦφαΩεΓ√Θ ΩεΣ ±ετΣασ≥ Φ ≤∩≡αΓδ σ≥ Φφ≥σ≡⌠σΘ±ε∞ ∩εδⁿτεΓα≥σδ φα δ■ßεΘ
- ∩δα≥⌠ε≡∞σ. Swing εßσ±∩σ≈ΦΓασ≥ εΣΦφαΩεΓεσ ∩εΓσΣσφΦσ ∩≡επ≡α∞√√ φα ≡ατφ√⌡
- ∩δα≥⌠ε≡∞α⌡.
-
- Swing ≡αßε≥ασ≥ ± JDK 1.1, ±Ωα≈αΘ≥σ ⌠αΘδ swing.jar Φ Σεß√Γ≥σ σπε Γ ∩≤≥ⁿ
- ∩εΦ±Ωα Ωδα±±εΓ. Swing Γ±≥≡εσφ Γ JDK 1.2, Φ Javasoft φσΣαΓφε ±∞σφΦδα
- φατΓαφΦσ ∩αΩσ≥α φα javax.swing.
-
- *(╫α±≥ⁿ 11) ╧ε≈σ∞≤ Ω≤≡±ε≡, ε∩≡σΣσδσφφ√Θ ΩαΩ Ω≤≡±ε≡ εµΦΣαφΦ (WAIT_CURSOR),
- Φτ∞σφ σ≥± ≥εδⁿΩε, ΩεπΣα φα⌡εΣΦ≥± φαΣ φσΩε≥ε≡√∞Φ Ωε∞∩εφσφ≥α∞Φ?
- ΦδΦ
- ╩αΩ Φτ∞σφΦ≥ⁿ εß√≈φ√Θ Ω≤≡±ε≡ φα Ω≤≡±ε≡ εµΦΣαφΦ φαΣ δ■ßεΘ Φτ εßδα±≥σΘ εΩφα,
- ΓΩδ■≈α σπε Ωε∞∩εφσφ≥√, Σδ ∩≡σΣε≥Γ≡α∙σφΦ ΩαΩΦ⌡-δΦßε ΣσΘ±≥ΓΦΘ ±ε ±≥ε≡εφ√
- ∩εδⁿτεΓα≥σδ Γε Γ≡σ∞ εß≡αßε≥ΩΦ φσΩε≥ε≡επε ±εß√≥Φ ? (Hα∩≡Φ∞σ≡ Σε±≥≤∩ Ω ßατσ
- Σαφφ√⌡, ε≥Ω≡√≥Φσ Σ≡≤πεπε εΩφα, ταπ≡≤τΩα Φτεß≡αµσφΦ , ±ε≡≥Φ≡εΓΩα Σαφφ√⌡ Φ
- ≥.Σ.)
-
- [*] ┬ JDK 1.0.2 Φτ∞σφ ≥ⁿ Ω≤≡±ε≡ ∞επ ≥εδⁿΩε ╘≡σΘ∞ awt. Hα≈Φφα ± JDK 1.1
- ≡αßε≥α ± ╩≤≡±ε≡ε∞ ß√δα ∩σ≡σφσ±σφα Γ Ωδα±± Component. ╥σ∩σ≡ⁿ Γ±σ ╩ε∞∩εφσφ≥√
- Φ∞σ■≥ Σε±≥≤∩ Ω Ωδα±±≤ Cursor.
-
- ┬√ ∞επδΦ Φτ∞σφ ≥ⁿ ╩≤≡±ε≡ φα Ω≤≡±ε≡ εµΦΣαφΦ Σδ ΩαµΣεπε Φτ ╩ε∞∩εφσφ≥εΓ. ┬
- ≡ Σσ ±δ≤≈ασΓ ²≥ε ε≥φΦ∞αδε φσ∞αδε Γ≡σ∞σφΦ, ≥αΩ ΩαΩ ∩ε≥σφ÷Φαδⁿφε Φ⌡ ≤ ┬α±
- ∞επδε ß√≥ⁿ ΣεΓεδⁿφε ∞φεπε. Hα≈Φφα ± JFC Swing ∩ε ΓΦδ± ∞σ⌡αφΦτ∞ Σδ
- Φτ∞σφσφΦ ╩≤≡±ε≡α φαΣ Γ±σ∞ ╬Ωφε∞ ÷σδΦΩε∞, φσ ±≈Φ≥α ±ⁿ ± ΩεδΦ≈σ±≥Γε∞
- Ωε∞∩εφσφ≥εΓ. ╩ε∞∩εφσφ≥ ßΦßδΦε≥σΩΦ Swing - JFrame ±εΣσ≡µΦ≥ ∞σ≥εΣ:
-
- public void setGlassPane(Component glassPane)
-
- Ωε≥ε≡√Θ ≤±≥αφαΓδΦΓασ≥ ╩ε∞∩εφσφ≥ awt ΩαΩ 'glassPane' Σδ JFrame.
-
- ▌≥ε≥ ╩ε∞∩εφσφ≥ ∩σ≡σΩ≡εσ≥ Γ±■, ∩≡ΦφαΣδσµα∙≤■ JFrame, Σε±≥≤∩φ≤■ (ΓΦΣΦ∞≤■ Γ
- Σαφφ√Θ ∞ε∞σφ≥) εßδα±≥ⁿ ∩εδⁿτεΓα≥σδ , Φ±Ωδ■≈α π≡αφΦ÷≤, ≤±≥αφεΓδσφφ≤■
- ε≥εß≡αµα■∙σΘ εΩεφφεΘ ±Φ±≥σ∞εΘ. ╚±∩εδⁿτ≤ ╩ε∞∩εφσφ≥ 'glassPane', ┬√ ∞εµσ≥σ
- ΓΩδ■≈Φ≥ⁿ '╩≤≡±ε≡ εµΦΣαφΦ ' φαΣ Γ±σ∞ JFrame, τα∩≡σ∙α ∩εδⁿτεΓα≥σδⁿ±ΩΦΘ ΓΓεΣ
- (σπε ∩εδφε±≥ⁿ■ ∩εδ≤≈ασ≥ 'glassPane') Φ ßδεΩΦ≡≤ ∩εδⁿτεΓα≥σδ ∩εΩα φσ
- ταΓσ≡°Φ≥± 'Σ≡≤πεΘ' ∩≡ε÷σ±±.
-
- ╟└╠┼╫└H╚┼: ┼±δΦ ┬√ ⌡ε≥Φ≥σ ΓΦΣσ≥ⁿ ╩≤≡±ε≡ εµΦΣαφΦ Γε Γ≡σ∞ ≡αßε≥√ 'Σ≡≤πεπε'
- ∩≡ε÷σ±±α, ≥ε φσεß⌡εΣΦ∞ε ±ετΣα≥ⁿ ╧ε≥εΩ Σδ Γ√∩εδφσφΦ ∩ε±δσΣφσπε. ╩επΣα
- ∩≡εΦ±⌡εΣΦ≥ Γ√∩εδφσφΦσ 'Σ≡≤πεΘ' ≡αßε≥√, 'glassPane' ε≥εß≡αµασ≥ ╩≤≡±ε≡
- εµΦΣαφΦ Φ "∩≡επδα≥√Γασ≥" Γσ±ⁿ ΓΓεΣ ∩εδⁿτεΓα≥σδ . ╧ε ταΓσ≡°σφΦΦ 'Σ≡≤πεΘ'
- ≡αßε≥√, ╧ε≥εΩ Φ±∩εδⁿτ≤σ≥ ┬α° ∞σ≥εΣ waitCursor() ≈≥εß√ ±Ω≡√≥ⁿ 'glassPane' Σε
- ≥σ⌡ ∩ε≡ ∩εΩα εφ φσ ∩εφαΣεßΦ≥± ±φεΓα.
-
- *(╫α±≥ⁿ 11) ╧ε≈σ∞≤ Ωε∞∩Φδ ≥ε≡ ±εεß∙ασ≥, ≈≥ε ∞σ≥εΣ "isCanselled()",
- ∩≡ΦφαΣδσµα∙ΦΘ javax.swing.ProgressMonitor, φσ φαΘΣσφ?
-
- [*] ┬ α∞σ≡ΦΩαφ±Ωε∞ αφπδΦΘ±Ωε∞ σ±≥ⁿ ΣΓα Σε∩≤±≥Φ∞√⌡ Γα≡Φαφ≥α ∩≡εΦτφε°σφΦ :
- "canceled" Φ "cancelled". ╟α∞σ≥ⁿ≥σ, ≈≥ε ∩σ≡Γ√Θ ±εΣσ≡µΦ≥ εΣφ≤ "l", α Γ≥ε≡εΘ
- - ΣΓσ "ll". Sun Φ±∩εδⁿτ≤σ≥ Γα≡Φαφ≥ "canceled" Σδ ProgressMonitor, φε Γε
- ∞φεπΦ⌡ Γ≥ε≡ε±≥σ∩σφφ√⌡ Φ±⌡εΣφΦΩα⌡ Φτ ΣεΩ≤∞σφ≥α÷ΦΦ φα∩Φ±αφε "cancelled". ┼∙σ
- φσ∩≡Φ ≥φσΘ ≥ε, ≈≥ε Γ φσΩε≥ε≡√⌡ ±δ≤≈α ⌡ Sun ≤∩ε≥≡σßδ σ≥ ≥αΩµσ Φ Γα≡Φαφ≥
- "cancelled", ΩαΩ φα∩≡Φ∞σ≡ Γ φατΓαφΦΦ ∞σ≥εΣα "isCancelled()" Σδ PrinterJob.
-
- *(╫α±≥ⁿ 11) ╧ε≈σ∞≤ φαµα≥Φσ φα ΩδαΓΦ°≤ Enter φσ αΩ≥ΦΓΦτΦ≡≤σ≥ Ωφε∩Ω≤ ∩ε
- ≤∞εδ≈αφΦ■ Γ ΣΦαδεπεΓε∞ εΩφσ ßΦßδΦε≥σΩΦ Swing?
-
- [*] ╨α±ΩδαΣΩα ΩδαΓΦ° ∩ε ≤∞εδ≈αφΦ■ Σδ ≥σΩ±≥εΓ√⌡ Ωε∞∩εφσφ≥εΓ ßΦßδΦε≥σΩΦ
- Swing (∩≡εΦτε°σΣ°Φ⌡ ε≥ JTextComponent) ∩≡ΦΓ τ√Γασ≥ Enter (VK_ENTER) Ω
- ActionEvent Σδ ≥σΩ±≥εΓ√⌡ ∩εδσΘ. ▌≥ε ß√δε ±Σσδαφε Γ ÷σδ ⌡ ±ε⌡≡αφσφΦ
- ±εΓ∞σ±≥Φ∞ε±≥Φ ± ≡αßε≥εΘ java.awt.Textfield. ╫≥εß√ Φ±∩εδⁿτεΓα≥ⁿ ΩδαΓΦ°≤
- Enter Σδ αΩ≥ΦΓΦτα÷ΦΦ Ωφε∩ΩΦ ∩ε ≤∞εδ≈αφΦ■, ≤ΣαδΦ≥σ ∩≡ΦΓ τΩ≤ ∩σ≡ΓεΘ Φτ
- ∩≡σΣδαπασ∞εΘ ≡α±ΩδαΣΩΦ ΩδαΓΦ° ≥σΩ±≥εΓεπε Ωε∞∩εφσφ≥α, ΩαΩ ∩εΩαταφε φΦµσ:
-
- static {
- KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
- Keymap map =
- JTextComponent.getKeymap(JTextComponent.DEFAULT_KEYMAP);
- map.removeKeyStrokeBinding(enter);
- }
-
- *(╫α±≥ⁿ 11) ╩αΩ ±ετΣαΓα≥ⁿ φσ∩≡ ∞ε≤πεδⁿφ√σ ╩ε∞∩εφσφ≥√?
-
- [*] ┬τπδ φΦ≥σ φα ±δσΣ≤■∙ΦΘ ∩≡Φ∞σ≡, ∩ε±≥αΓδ σ∞√Θ Γ∞σ±≥σ ± JDK:
- $JAVAHOME\demo\awt-1.1\lightweight\RoundButtons\example.html
-
- ------------------------------
-
- 12. ┴≡α≤τσ≡√
-
- 1. (╫α±≥ⁿ 12) ╩επΣα µσ ∞εΘ δ■ßΦ∞√Θ ß≡α≤τσ≡ ß≤Σσ≥ ∩εΣΣσ≡µΦΓα≥ⁿ Java 1.1?
-
- [*] ┬ φα±≥ε ∙ΦΘ ∞ε∞σφ≥ Γ±σ ∩ε∩≤δ ≡φ√σ ß≡α≤τσ≡√ Φ∞σ■≥ ∩εΣΣσ≡µΩ≤ JDK
- 1.1. Netscape Communicator 4.04 ± ∩α≥≈σ∞ "J" ∩εδφε±≥ⁿ■ ∩εΣΣσ≡µΦΓασ≥
- Γετ∞εµφε±≥Φ Java 1.1. ╬φ ß√δ Γ√∩≤∙σφ Γ ΣσΩαß≡σ 1997 πεΣα, Φ
- σΣΦφ±≥Γσφφεσ, ≈≥ε ≥α∞ ε≥±≤≥±≥Γ≤σ≥,- ∩εΣΣσ≡µΩα JavaSoft Σδ ∩εΣ∩Φ±Φ
- α∩∩δσ≥εΓ (Γ ²≥ε∞ Γε∩≡ε±σ Netscape ∩ε°δα ±ΓεΦ∞ ∩≤≥σ∞). ╤∞ε≥≡Φ≥σ
- http://developer.netscape.com/support/faqs/champions/java.html#21
- ┼±δΦ ┬√ Φ±∩εδⁿτ≤σ≥σ Netscape 4.05, Φ Ωεφ±εδⁿ ±εεß∙ασ≥ ≈≥ε-φΦß≤Σⁿ
- ε≥δΦ≈φεσ ε≥ Java 1.1.5, ≥ε τφα≈Φ≥ ┬α° Netscape φσ ∩εδφε±≥ⁿ■
- ∩εΣΣσ≡µΦΓασ≥ 1.1. ╟Σσ±ⁿ φα⌡εΣΦ≥± ±∩σ÷Φαδⁿφα ετφαΩε∞Φ≥σδⁿφα Γσ≡±Φ :
- http://developer.netscape.com/software/jdk/download.html
-
- ┬ 1997 πεΣ≤ Netscape ε±δαßΦδα ∩εΣΣσ≡µΩ≤ Java Γ ±Γ τΦ ± τα⌡Γα≥ε∞ ≡√φΩα
- Ωε∞∩αφΦσΘ Microsoft. Microsoft Φ±∩εδⁿτ≤σ≥ IE, ΩαΩ ±≥≡α≥σπΦ≈σ±Ωεσ
- ±≡σΣ±≥Γε Σδ ΓφσΣ≡σφΦ ≥επε, ≈≥ε ±δ≤µα∙Φσ ²≥εΘ Ωε∞∩αφΦΦ φατ√Γα■≥
- "ταπ≡ τφσφφα Java" ("polluted Java"). ─δ εßεΦ⌡ ß≡α≤τσ≡εΓ ⌡ε≡ε°Φ∞
- ≡σ°σφΦσ∞ Γδ σ≥± Java Plug-in.
-
- ┴≡α≤τσ≡ ⌠Φ≡∞√ Sun,- HotJava,- ∩εδφε±≥ⁿ■ ∩εΣΣσ≡µΦΓασ≥ Γ±σ Γετ∞εµφε±≥Φ
- JDK 1.1. ╦■Σ ∞, Γ√φ≤µΣσφφ√∞ ∩εδⁿτεΓα≥ⁿ± ß≡α≤τσ≡ε∞ ßστ ∩εδφεΘ
- ∩εΣΣσ≡µΩΦ Java, ±δσΣ≤σ≥ ∩≡Φ∞σφ ≥ⁿ Java Plug-In, τα∞σφ ■∙ΦΘ ±≥αφΣα≡≥φ≤■
- ΓΦ≡≥≤αδⁿφ≤■ ∞α°Φφ≤ Java, Ωε≥ε≡εΘ Ωε∞∩δσΩ≥≤σ≥± ß≡α≤τσ≡, Φ ∩ετΓεδ ■∙ΦΘ
- Φ±∩εδⁿτεΓα≥ⁿ RMI, Ωε∞∩εφσφ≥√ JavaBeans Φ ╬±φεΓφ√σ ╩δα±±√ Java (Java
- Foundation Classes) Γ Internet Explorer 3.02, 4.0 Φ 4.01. Java Plug-In
- ≥αΩµσ ßστ ∩≡εßδσ∞ ≡αßε≥ασ≥ ± ß≡α≤τσ≡α∞Φ Netscape. ┼πε ∞εµφε ∩εδ≤≈Φ≥ⁿ
- ∩ε αΣ≡σ±≤ http://java.sun.com/products/.
- ╟α∞σ≥ⁿ≥σ, ≈≥ε φαΣε φσ∞φεπε Φτ∞σφΦ≥ⁿ HTML Σδ ∩εδφεΘ ≤Γσ≡σφφε±≥Φ Γ ≥ε∞,
- ≈≥ε ≡αßε≥ασ≥ Φ∞σφφε plug-in, α φσ JVM ß≡α≤τσ≡α. ─αφφ√Θ ∩≡εΣ≤Ω≥
- ∩≡εΦτΓεΣΦ≥ Γ±σ Φτ∞σφσφΦ αΓ≥ε∞α≥Φ≈σ±ΩΦ.
-
- 2. (╫α±≥ⁿ 12) ╩αΩΦσ ∩εΣ∩≡επ≡α∞∞√ α∩∩δσ≥α Γ√τ√Γα■≥± Γ ≡ατδΦ≈φ√⌡ ß≡α≤τσ≡α⌡
- Φ plug-in'α⌡ Γ ε≥Γσ≥ φα Γετ∞εµφ√σ ΣσΘ±≥ΓΦ , ≤∩≡αΓδ ■∙Φσ ∩≡ε±∞ε≥≡ε∞
- (φαταΣ (back), Γ∩σ≡σΣ (forward), ταπ≡≤τΦ≥ⁿ (load) Φ ≥.Σ.)?
-
- [*] ╤≥ε≡εφφΦΩ Java - Dave Postill - ∩≡εΓσδ ≡αßε≥≤, ≈≥εß√ ∩εδ≤≈Φ≥ⁿ
- ε≥Γσ≥ φα ²≥ε≥ Γε∩≡ε±.
- ╞Φτφσφφ√Θ ÷ΦΩδ α∩∩δσ≥α ε∩≡σΣσδ σ≥± Γ√τεΓα∞Φ init(), start(), stop() Φ
- destroy(). ┴≤Σⁿ≥σ ε±≥ε≡εµφ√ ∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ∩ε≥εΩεΓ Γ α∩∩δσ≥α⌡. ┬ε
- ∞φεπΦ⌡ εß≡ατ÷α⌡ ΩεΣα ∞σ≥εΣ stop() Γ√τ√Γασ≥ ε±≥αφεΓΩ≤ Γ±σ⌡ ∩ε≥εΩεΓ Γ
- ∩≡σΣσδα⌡ α∩∩δσ≥α, α τα≥σ∞ ≤±≥αφαΓδΦΓασ≥ Φ⌡ Γ φ≤δⁿ (null).
-
- ╥αΩεσ ≤φΦ≈≥εµσφΦσ ∩ε≥εΩεΓ Γδ σ≥± ∩ε ∞σφⁿ°σΘ ∞σ≡σ ε∩≡ε∞σ≥≈ΦΓ√∞.
- ╠φεπΦσ Σ≤∞α■≥, ≈≥ε ∞σ≥εΣ stop() Γ√τ√Γασ≥± ≥εδⁿΩε, ΩεπΣα ∩εδⁿτεΓα≥σδⁿ
- ∩εΩΦΣασ≥ ±≥≡αφΦ≈Ω≤ Φ ⌡ε≈σ≥ ε φσΘ ταß√≥ⁿ; φε, ≥αΩ ΩαΩ Netscape Γ√τ√Γασ≥
- stop() Σαµσ, ΩεπΣα ∩≡εΦ±⌡εΣΦ≥ Φτ∞σφσφΦσ ≡ατ∞σ≡α εΩφα, ≥ε ∩εδⁿτεΓα≥σδΦ
- ≤≥≡α≥ ≥ ±ε±≥ε φΦσ α∩∩δσ≥α, ΩεπΣα ß≤Σ≤≥ ∩≡εΦτΓεΣΦ≥ⁿ φστφα≈Φ≥σδⁿφ≤■, ∩ε
- Φ⌡ ∞φσφΦ■, φα±≥≡εΘΩ≤.
-
- ╤∞ε≥≡Φ≥σ "╤εΓσ≥ ∩ε Java (Java Tip) 8: ╧ε≥εΩΦ, Netscape Φ ∩≡εßδσ∞α
- Φτ∞σφσφΦ ≡ατ∞σ≡α (resize) εΩφα - ╩αΩ ≡αßε≥α≥ⁿ ± Φτ∞σφσφΦσ∞ ≡ατ∞σ≡α
- εΩφα α∩∩δσ≥a Γ Netscape Navigator", JavaWorld
- http://www.javaworld.com/javatips/jw-javatip8.html. ╩ ±εµαδσφΦ■
- ≡σ°σφΦσ JavaWorld φσ ≡σ°ασ≥ ∩≡εßδσ∞≤ ∩εδφε±≥ⁿ■, ∩ε±ΩεδⁿΩ≤ Γ φσ∞ Σδ
- ≡α±∩ετφαΓαφΦ Φτ∞σφσφΦ ≡ατ∞σ≡α εΩφα ∩≡σΣ∩εδαπασ≥± , ≈≥ε start() ß≤Σσ≥
- Γ√τΓαφ Γ±Ωε≡σ ∩ε±δσ stop(). ╬ΣφαΩε, σ±δΦ Γ√ ∞ΦφΦ∞ΦτΦ≡≤σ≥σ εΩφε ±
- ß≡α≤τσ≡ε∞, ≥ε εφ ∞εµσ≥ ∩ε±δα≥ⁿ └∩∩δσ≥≤ stop(), Φ τα≥σ∞ φσ Γ√τ√Γα≥ⁿ
- start(), ∩εΩα εΩφε ┴≡α≤τσ≡α φσ ß≤Σσ≥ Γε±±≥αφεΓδσφε ΦδΦ
- ∞αΩ±Φ∞ΦτΦ≡εΓαφε. ┬ ≥αΩε∞ ±δ≤≈ασ Φ±∩εδⁿτεΓαφΦσ ≡σ°σφΦ JavaWorld Γ
- └∩∩δσ≥σ ≤φΦ≈≥εµΦ≥ σπε, σ±δΦ ∞ΦφΦ∞ΦτΦ≡εΓαφφ√Θ ┴≡α≤τσ≡ φσ Γε±±≥αφεΓΦ≥ⁿ Γ
- Φ±⌡εΣφεσ ±ε±≥ε φΦσ Σε ∞ε∞σφ≥α Φ±≥σ≈σφΦ Γ≡σ∞σφΦ ßδεΩΦ≡εΓΩΦ ≤φΦ≈≥εµσφΦ
- ╧ε≥εΩεΓ.
-
- ╧≡ε±∞ε≥≡∙ΦΩ Internet
- Netscape Netscape ± └∩∩δσ≥εΓ Internet Explorer
- [4.04/JDK Plug-In'ε∞ (Applet- Explorer 4 ±
- Plug-In'ε∞
- 1.1.4] [4.05/ JDK Viewer) SP1 [5.00.0518.10
- [4.05/JDK 1.1.5/ [JDK 1.1.5] 4.72.3110.8 / Plugin
- 1.1]
- 1.1.5] Plugin 1.1] Σδ NT 4.0 Σδ NT 4.0
- [JDK 1.1.6] SP3 SP3
- 1. ╬≈Φ±≥Ωα Ω²°α
- ß≡α≤τσ≡α φΦ≈σπε φΦ≈σπε φΦ≈σπε φΦ≈σπε φΦ≈σπε
- init(),
- 2. start() ΦδΦ
- ╧σ≡Γεφα≈αδⁿφα init(), init(), init(), init(), init(),
- ταπ≡≤τΩα .html start(), start() start() start() start()
- stop(),
- start() [1]
-
- 3. HαταΣ stop() stop(), [4] stop(), stop(),
- destroy() destroy() destroy()
-
- 4. ┬∩σ≡σΣ start() init(), [4] init(), init(),
- start() start() start()
- stop(), stop(), stop(), stop(),
- 5. destroy(), destroy(), destroy(), destroy(),
- ╧σ≡σταπ≡≤τΦ≥ⁿ init(), init(), [4] init(), init(),
- start() start() start() start()
- 6. <shift>
- ∩σ≡σταπ≡≤τΦ≥ⁿ stop(), stop(), stop(), stop(),
- [NS], destroy(), destroy(), destroy(), destroy(),
- <ctrl> init(), init(), [4] init(), init(),
- ∩σ≡σταπ≡≤τΦ≥ⁿ start() start() start() start()
- [IE]
- 7. ╚τ∞σφΦ≥ⁿ stop(),
- ≡ατ∞σ≡ start() [3] [3] [3] [3]
- 8.
- ╠ΦφΦ∞ΦτΦ≡εΓα≥ⁿ [2] [3] stop() [2] [3]
- 9. ┬ε±±≥αφεΓΦ≥ⁿ[2] [3] start() [2] [3]
-
- 10. ┬√Θ≥Φ stop(), stop(), stop(), stop(), stop(),
- destroy() destroy() destroy() destroy() destroy()
-
- ╧≡Φ∞σ≈αφΦ :
- [1] ╨στ≤δⁿ≥α≥√ φσ ∩ε±≥ε φφ√.
- [2] Hσ ∩≡εΓσ≡ δε±ⁿ.
- [3] ╧≡εΓσ≡σφε Φ εßφα≡≤µσφε, ≈≥ε ≡α±±∞α≥≡ΦΓασ∞√σ ∞σ≥εΣ√ φσ Γ√τ√Γα■≥± .
- [4] ╥σ±≥ φσ ∩≡Φ∞σφΦ∞.
-
- *(╫α±≥ⁿ 12) ┬ετ∞εµφε δΦ Φτ Java ≡ατ∞σ∙α≥ⁿ Φ ∩εδ≤≈α≥ⁿ εß≡α≥φε "Ω≤ΩΦ"
- (cookies) ±∩ε±εßε∞ ±εΓ∞σ±≥Φ∞√∞ ±ε Γ±σ∞Φ ß≡α≤τσ≡α∞Φ, ∩εΣΣσ≡µΦΓα■∙Φ∞Φ "Ω≤ΩΦ"
- (cookies)?
-
- [*] ╩≡α≥ΩΦΘ ε≥Γσ≥: φσ≥.
- ╨α±°Φ≡σφφ√Θ ε≥Γσ≥: Γσ≡ε ≥φε φσ≥.
- ╬Ωεφ≈α≥σδⁿφ√Θ ε≥Γσ≥:
- "╩≤ΩΦ" (╤ookie) ²≥ε φστφα≈Φ≥σδⁿφ√Θ εßⁿσ∞ Σαφφ√⌡, Ωε≥ε≡√σ ±σ≡Γσ≡ ∩ε±√δασ≥
- εß≡α≥φε ΩδΦσφ≥≤, Φ ∞εµσ≥ Γε±±≥αφεΓΦ≥ⁿ ∩ε ≥≡σßεΓαφΦ■. ▌≥ε ∩ετΓεδ σ≥ ±σ≡Γσ≡≤
- ±ε⌡≡αφ ≥ⁿ φσΩε≥ε≡≤■ ±≥α≥Φ≈σ±Ω≤■ Φφ⌠ε≡∞α÷Φ■ εß ΩαµΣε∞ Φτ ±ΓεΦ⌡ ΩδΦσφ≥εΓ.
- ╚φ⌠ε≡∞α÷Φ εß√≈φε ≈≥ε-≥ε ≥Φ∩α - "ΩαΩΦσ ±≥≡αφΦ÷√ ∩ε±σ∙αδΦ±ⁿ ∩εδⁿτεΓα≥σδσ∞?"
- ΦδΦ "²≥ε ∩≡ΦΓΦδσπΦ≡εΓαφφ√Θ ∩εδⁿτεΓα≥σδⁿ?".
- ╨ατΣσδ DevEdge φα Σε∞α°φσΘ ±≥≡αφΦ÷σ Netscape's ±εΣσ≡µΦ≥ Javascript-Java
- ∩≡Φ∞σ≡ ∩εδ≤≈σφΦ cookies. ╥αΩ µσ ±δσΣ≤■∙α ±±√δΩα
- http://www.geocities.com/SiliconValley/Vista/1337 ±εΣσ≡µΦ≥ Φφ⌠ε≡∞α÷Φ■ ε
- ±Γ τ√ΓαφΦΦ α∩∩δσ≥α ± ⌠≤φΩ÷Φ ∞Φ JavaScript. ╥αΩ ΩαΩ ²≥ε ΣεΓεδⁿφε τα∩≤≥αφφε,
- Φ±∩εδⁿτ≤Θ≥σ ≥εδⁿΩε Java σ±δΦ ²≥ε Γετ∞εµφε.
-
- *(╫α±≥ⁿ 12) ▀ ≡ατ≡αßε≥αδ α∩∩δσ≥ Φ ∩≡ε≥σ±≥Φ≡εΓαδ σπε ∩εΣ Netscape
- Navigator, Φ εßφα≡≤µΦδ ≈≥ε ∩ε±δσ ∩σ≡σΩε∞∩Φδ ÷ΦΦ, Σαµσ σ±δΦ φαµΦ∞α■
- reload, ε≈Φ∙α■ Ω²°, ∩εΓ≥ε≡φε ΓΓεµ≤ URL ΣεΩ≤∞σφ≥α Γ±σ ≡αΓφε ∩εδ≤≈α■ ±≥α≡≤■
- Γσ≡±Φ■ α∩∩δσ≥α. ╧ε≈σ∞≤?
-
- [*] ╧≡Φ∞σ≈αφΦσ: ≈Φ≥α≥σδΦ Φφ⌠ε≡∞Φ≡≤■≥ ε ≥ε∞, ≈≥ε Γ Netscape Communicator
- 4.05 Γετ∞εµφε ∩≡Φφ≤ΣΦ≥σδⁿφε ∩σ≡σπ≡≤τΦ≥ⁿ α∩∩δσ≥ ≤Σσ≡µΦΓα "control"+"shift"
- Φ "ΩδΦΩα " φα "Reload"
- ┬ ∩≡ε°δε∞ Netscape φσ ±≤∞σδΦ ∩εδφε±≥ⁿ■ Φ±∩≡αΓΦ≥ⁿ Σσ⌠σΩ≥φ√Θ ΩεΣ, Ωε≥ε≡√Θ
- Γ√∩εδφ σ≥ ≥αΩΦσ αß±≤≡Σφ√σ Γσ∙Φ. ▌≥ε ∩εΓ≥ε≡ δε±ⁿ Γε ∞φεπΦ⌡ ≤Σα≈φ√⌡ ≡σδΦτα⌡.
- ╬≈Φ±≥Ωα ±σ≥σΓεπε Ω²°α φσ ΓδΦ σ≥; φσ Φ∞σσ≥ τφα≈σφΦ πΣσ ∩≡εΦ±⌡εΣΦ≥
- Ω²°Φ≡εΓαφΦσ. ╒ε≥ α∩∩δσ≥√ ΦφεπΣα ≤Σαδ ■≥± ("pruned") Φ ∩≡εΦ±⌡εΣΦ≥ ≤ßε≡Ωα
- "∞≤±ε≡α", ²≥ε≥ ∩≡ε÷σ±± φσ ∩≡σΣ±Ωατ≤σ∞, ∩ε²≥ε∞≤ ∩σ≡στα∩≤±Ω Netscape
- σΣΦφ±≥Γσφφε φαΣσµφα Γσ∙ⁿ Γ φα±≥ε ∙σσ Γ≡σ∞ .
- ╤Γ ταφφ√Θ Γε∩≡ε± "ΩαΩ ±Σσδα≥ⁿ ∩σ≡σταπ≡≤τΩ≤ εΩφα ß≡α≤τσ≡α Φτ URLConnection
- Γ∞σ±≥ε ∩εδ≤≈σφΦ ±εΣσ≡µαφΦ Φτ δεΩαδⁿφεπε Ω²°α?" ╬≥Γσ≥: Φ±∩εδⁿτ≤Θ≥σ
-
- java.net.URLConnection.setUseCaches(false)
-
- ╬Ωφε ß≡α≤τσ≡α Φτ∞σφ σ≥± Γ ±εε≥Γσ≥±≥ΓΦΦ ± ²≥Φ∞ ∩≡επ≡α∞∞φ√∞ ≥≡σßεΓαφΦσ∞.
- ╩σ°Φ≡εΓαφΦσ Γ Netscap-e Γα≡ⁿΦ≡≤σ≥± Γ ταΓΦ±Φ∞ε±≥Φ ε≥ ≥επε Φ±∩εδⁿτ≤σ≥± δΦ
- proxy ±σ≡Γσ≡, Φ ΩαΩεΘ ∩ε≥εΩ Γ α∩∩δσ≥σ Γ√∩εδφ σ≥ τα∩≡ε±.
-
- ─≡≤πεΘ ∩εΣ⌡εΣ ±ε±≥εΦ≥ Γ ΣεßαΓδσφΦΦ "?<φσΩε≥ε≡εσ_≈Φ±δε>" Ω URL, ≥εσ±≥ⁿ
-
-
- http://www.somesite.com/webcam/image.jpg?100
-
- Φ ≤ΓσδΦ≈σφΦΦ ²≥επε ≈Φ±δε ΩαµΣ√Θ ≡ατ ΩεπΣα α∩∩δσ≥ Γ√τ√Γασ≥ Φτεß≡αµσφΦσ.
-
- *(╫α±≥ⁿ 12) ╧ε≈σ∞≤ Netscape φσ εßφεΓδ σ≥ α∩∩δσ≥ ΩεπΣα ┬√ φαµΦ∞ασ≥σ Ωφε∩Ω≤
- Reload ?
-
- [*] ─δ ∩σ≡σταπ≡≤µασ∞επε α∩∩δσ≥α, φεΓα Γσ≡±Φ Σεδµφα ß√δα ß√ ß√≥ⁿ
- ταπ≡≤µσφα Γ Σ≡≤πε∞ ClassLoader-σ. ╤≥≡α≥σπΦ Navigator/Communicator's Σδ
- ±Γ τ√ΓαφΦ α∩∩δσ≥α ± ClassLoader-ε∞ φσ ∩≡ΦφΦ∞ασ≥ Γε ΓφΦ∞αφΦσ ß√δα δΦ
- Γ√∩εδφσφα ∩σ≡σταπ≡≤τΩα. (⌡ε≥ φσ≥ φΦΩαΩΦ⌡ ≥σ⌡φΦ≈σ±ΩΦ⌡ ∩≡Φ≈Φφ ≈≥ε ß√ ²≥επε
- φσ Σσδα≥ⁿ).
- HσΩε≥ε≡√σ Γσ≡±ΦΦ Netscape εßφεΓδ ■≥ α∩∩δσ≥ σ±δΦ ε≈Φ±≥Φ≥ⁿ Ω²° Φ±∩εδⁿτ≤
- ∩≤φΩ≥√ ∞σφ■ Edit/Preferences/Advanced/Cache to Clear Memory Cache and Clear
- Disk Cache, α τα≥σ∞ ≤Σσ≡µΦΓα <Shift> φαµα≥ⁿ reload.
- ┬ Explorer, Φ±∩εδⁿτ≤Θ≥σ View/Options/General/Delete Files Σδ ε≈Φ±≥ΩΦ Ω²°α,
- τα≥σ∞ <Control> 'Reload' Σδ εßφεΓδσφΦ ±≥≡αφΦ÷√ ±εΣσ≡µα∙σΘ α∩∩δσ≥.
-
- ─ε ≥σ⌡ ∩ε≡ ∩εΩα ²≥ε φσ Φ±∩≡αΓ ≥, Φ±∩εδⁿτ≤Θ≥σ appletviewer Σδ ≥σ±≥Φ≡εΓαφΦ
- α∩∩δσ≥εΓ. ╚ ∩Φ°Φ≥σ ∩Φ±ⁿ∞α - ≡ατ≡αßε≥≈ΦΩΦ ∞επ≤≥ Φ±∩≡αΓΦ≥ⁿ ≥εδⁿΩε ≥σ "ßαπΦ" ε
- Ωε≥ε≡√⌡ τφα■≥.
-
- *(╫α±≥ⁿ 12) ╫≥ε ∩≡σΣ∩ε≈≥Φ≥σδⁿφσσ Φ±∩εδⁿτεΓα≥ⁿ ⌠αΘδ√ Microsoft CAB ΦδΦ Java
- JAR?
-
- [*] ┬ε∩≡ε± ≡Φ≥ε≡Φ≈σ±ΩΦΘ.
- ╘ε≡∞α≥ ⌠αΘδεΓ CAB ±εß±≥Γσφφε±≥ⁿ Microsoft. Hσ Φ±∩εδⁿτ≤Θ≥σ σπε ≥αΩ ΩαΩ εφ
- ≡ατ≡≤°ασ≥ ∩σ≡σφε±Φ∞ε±≥ⁿ ∩≡επ≡α∞∞.
- ╘αΘδεΓ√Θ ⌠ε≡∞α≥ JAR ±≥αφΣα≡≥φ√Θ ⌠ε≡∞α≥ Java, ε±φεΓαφφ√Θ φα ⌠ε≡∞α≥σ PKZIP ±
- Ωε∞∩≡σ±±ΦσΘ Σαφφ√⌡, ß√δ ΓΓσΣσφ Γ JDK 1.1.
- ╤±√δΩα http://www.ibm.com/java/community/viewarchive4.html ±εΣσ≡µΦ≥
- Σε∩εδφΦ≥σδⁿφ≤■ Φφ⌠ε≡∞α÷Φ■.
- ┬α∞ ±≥εΦ≥ Φ±∩εδⁿτεΓα≥ⁿ ±≥αφΣα≡≥φ√Θ ⌠ε≡∞α≥ Java - JAR (╘αΘδ α≡⌡ΦΓα Java),
- ΩαΩ ⌠αΘδεΓ√Θ ⌠ε≡∞α≥ φσ ±Γ ταφφ√Θ ± ε∩≡σΣσδσφφ√∞ ∩ε±≥αΓ∙ΦΩε∞, ≥αΩ ΩαΩ JAR φσ
- ≥εδⁿΩε ±≥αφΣα≡≥φ√Θ ⌠ε≡∞α≥ Java, φε Φ ∩≡ε∞√°δσφφ√Θ ±≥αφΣα≡≥ ≡ατφεΓΦΣφε±≥Φ
- PKZIP. ╬ΣΦφ Φτ ≈Φ≥α≥σδσΘ τα∞σ≈ασ≥ ≈≥ε εßα ⌠ε≡∞α≥α ∞επ≤≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφ√,
- ΩαΩ φα∩≡Φ∞σ≡ Γ ±δσΣ≤■∙σ∞ ΩεΣσ
-
- <APPLET NAME=myapplet
- ARCHIVE="myzip.zip"
- CODE="com/nnnnn/nnnn/cccccccc.class"
- WIDTH=n
- HEIGHT=n>
- <PARAM NAME="cabbase" VALUE="mycab.cab">
- </APPLET>
-
- IE3 φσ ∩εΣΣσ≡µΦΓασ≥ JAR
- IE4 ∩εΣΣσ≡µΦΓασ≥ ±µα≥√Θ Φ φσ ±µα≥√Θ ⌠ε≡∞α≥ JAR, φε φσ ∩εΣ∩Φ±αφφ√Θ JAR
-
- *(╫α±≥ⁿ 12) ╩αΩ ∞επ≤ ≤τφα≥ⁿ Γσ≡±Φ■ Java ∩εΣΣσ≡µΦΓασ∞≤■ ∞εΦ∞ ß≡α≤τσ≡ε∞?
-
- [*] ╤∞ε≥≡Φ ±±√δΩ≤
- http://java.rrzn.uni-hannover.de/insel/beispiele/vertest.html. ▌≥α ±±√δΩα
- ±εεß∙ασ≥ ∩εΣΣσ≡µΦΓασ≥ δΦ ┬α° ß≡α≤τσ≡ JDK 1.1.
-
- ╤±√δΩα http://www.uni-kassel.de/~pfuetz/Properties.html ±εεß∙ασ≥ ΩαΩΦσ
- Ωδα±±√ ∞εµφε φαΣσ ≥ⁿ± ß≤Σ≤≥ ∩≡Φ±≤≥±≥ΓεΓα≥ⁿ Γ Γ√∩εδφ ■∙σΘ ±Φ±≥σ∞σ ß≡α≤τσ≡α.
-
- *(╫α±≥ⁿ 13) ╠επ≤ δΦ ΦτßαΓΦ≥ⁿ± ε≥ ±εεß∙σφΦ "Warning:Applet Window"
- ΓφΦτ≤ εΩεφ, ε≥Ωp√Γασ∞√⌡ ∞εΦ∞ α∩∩δσ≥ε∞?
-
- [*] ▌≥ε ±Σσδαφε Σδ εßσ±∩σ≈σφΦ ßστε∩α±φε±≥Φ, ≈≥εß√ φσ ∩ετΓεδΦ≥ⁿ ±ετΣα≥σδ■
- α∩∩δσ≥α ε≥Ωp√≥ⁿ εΩφε, ∩ε⌡εµσσ φα ±Φ±≥σ∞φεσ Φ τα∩pα°ΦΓα■∙σσ ∩αpεδⁿ,
- Φφ⌠εp∞α÷Φ■ ε ΩpσΣΦ≥φεΘ Ωαp≥σ Φ ≥.∩. ╧εδⁿτεΓα≥σδΦ Γ±σπΣα Σεδµφ√ τφα≥ⁿ, ≈≥ε
- εφΦ Φ∞σ■≥ Σσδε ± φσ∩εΣ∩Φ±αφφ√∞ α∩∩δσ≥ε∞. ┬√ ∞εµσ≥σ ε≥ ²≥επε ΦτßαΓΦ≥ⁿ± ,
- ∩εΣ∩Φ±αΓ α∩∩δσ≥, σ±δΦ ∩εδⁿτεΓα≥σδⁿ ∩pΦφΦ∞ασ≥ ∩εΣ∩Φ±αφφ√σ Γα∞Φ α∩∩δσ≥√. ┬
- Netscape (≥εδⁿΩε) Φ±∩εδⁿτεΓαφΦσ Capabilities API Σδ Γ√τεΓα
-
- PrivilegeManager.enablePrivilege("UniversalTopLevelWindow");
-
- ∩σpσΣ ±ετΣαφΦσ∞ εß·σΩ≥α Frame ∩εΣαΓδ σ≥ ±εεß∙σφΦσ, σ±δΦ ²≥ε ∩pε∩≤±Ωασ≥
- ∞σφσΣµσp ßστε∩α±φε±≥Φ.
-
- *(╫α±≥ⁿ 13) ╩επΣα pα±°Φp ■ Ωδα±± Applet, ∩ε≈σ∞≤ Σεδµσφ ∩ε∞σ∙α≥ⁿ ΩεΣ
- ΦφΦ÷ΦαδΦτα÷ΦΦ Γ ∞σ≥εΣ init()? ╧ε≈σ∞≤ φσ ∩pε±≥ε Γ Ωεφ±≥p≤Ω≥εp ∞εσπε Ωδα±±α?
-
- [*] ┴pα≤τσp Γ√τ√Γασ≥ Ωεφ±≥p≤Ω≥εp, τα≥σ∞ setStub, α τα≥σ∞ init().
- ╤δσΣεΓα≥σδⁿφε, ΩεπΣα Γ√τ√Γασ≥± Γα° Ωεφ±≥p≤Ω≥εp, AppletStub (α τφα≈Φ≥ Φ
- AppletContext) σ∙σ φσ ±≤∙σ±≥Γ≤σ≥. ╒ε≥ , Γ ∩pΦφ÷Φ∩σ, Γ√ ∞εµσ≥σ Γ√∩εδφ ≥ⁿ Γ
- Ωεφ±≥p≤Ω≥εpσ ΣσΘ±≥ΓΦ , φσ τα≥pαπΦΓα■∙Φσ (Σαµσ Ωε±Γσφφε) AppletStub ΦδΦ
- AppletContext, ∩ε∞σ∙σφΦσ Γ±σΘ ΦφΦ÷ΦαδΦτα÷ΦΦ Γ ∞σ≥εΣ init() ∩ετΓεδ σ≥
- Φτßσµα≥ⁿ ε°ΦßεΩ. ╥αΩ Γ√ ß≤Σσ≥σ ≤Γσpσφ√, ≈≥ε σ±δΦ ²≥Φ Ωδα±±√ Σδ ≈σπε-≥ε
- ∩εφαΣεß ≥± , εφΦ ß≤Σ≤≥ Γ φαδΦ≈ΦΦ.
-
- *(╫α±≥ⁿ 13) ╩αΩ ∞φσ Γ√≥ φ≤≥ⁿ ⌠αΘδ, φσ Γδ ■∙ΦΘ± Ωδα±±ε∞, φα∩pΦ∞σp .gif,
- Φτ jar-⌠αΘδα?
-
- [*] ┬ Γα°σ∞ Ωδα±±σ Σεδµφα ß√≥ⁿ Γετ∞εµφε±≥ⁿ ±Σσδα≥ⁿ ≈≥ε-≥ε ΓpεΣσ ²≥επε:
-
- String imageFileName = "foo.jpg"
- URL imageURL = getClass().getResource(imageFileName);
- Toolkit tk = Toolkit.getDefaultToolkit();
- Image img = null;
- try {
- java.awt.image.ImageProducer I_P;
- I_P = (java.awt.image.ImageProducer)imageURL.getContent();
- img = tk.createImage(I_P);
-
- ╚δΦ, ≈≥ε ≥ε µσ ±α∞εσ, φε, Γετ∞εµφε, ∩pε∙σ:
-
- String imageFileName = "foo.jpg";
- InputStream jpgStream = getClass().getResourceAsStream(imageFileName);
- Toolkit tk = Toolkit.getDefaultToolkit();
- Image img = null;
- try {
- byte imageBytes[]=new byte[jpgStream.available()];
- jpgStream.read(imageBytes);
- img = tk.createImage(imageBytes);
-
- (╩αΩ Γ±σ, ≈≥ε Ωα±ασ≥± Jar-⌠αΘδεΓ, ²≥ε Σδ JDK 1.1 Φ Γ√°σ.)
- getResource(String) φσ pαßε≥ασ≥ Γ α∩∩δσ≥α⌡ Γ Netscape
- Γ ±Γ τΦ ± ε±εßσφφε±≥ ∞Φ ±Φ±≥σ∞√ ßστε∩α±φε±≥Φ Netscape. ┬∞σ±≥ε ²≥επε Γ√
- Σεδµφ√ Φ±∩εδⁿτεΓα≥ⁿ getResourceAsStream(String).
- See http://developer.netscape.com/software/jdk/relnotes.htm
-
- ╟α∞σ≈≤, ≈≥ε getResourceAsStream() ≥αΩµσ ⌡εpε°ε Φ±∩εδⁿτεΓα≥ⁿ Σδ ≈≥σφΦ
- ≥σΩ±≥εΓεπε (ΦδΦ ΩαΩεπε-φΦß≤Σⁿ Σp≤πεπε) ⌠αΘδα Φτ JAR-⌠αΘδα.
-
- public void init() {
- InputStream myStream = getClass().getResourceAsStream("myFile");
- // ...
- }
-
- ╧ε±δσ ≥επε, ΩαΩ Γ√ ∩εδ≤≈ΦδΦ σπε Γ ΓΦΣσ InputStream, Γ√ ∞εµσ≥σ σπε ≈Φ≥α≥ⁿ
- ≥αΩ, ΩαΩ Γα∞ ßεδⁿ°σ φpαΓΦ≥± .
-
- *(╫α±≥ⁿ 13) ▀ ⌡ε≈≤ pατεßpα≥ⁿ± ± {α∩∩δσ≥α∞Φ,∩pΦδεµσφΦ ∞Φ}, φε Γ ≥εΘ ΩφΦπσ,
- Ωε≥εp≤■ Σε±≥αδ, pα±±Ωατ√Γασ≥± ≥εδⁿΩε ε {∩pΦδεµσφΦ ⌡,α∩∩δσ≥α⌡}. ╫≥ε ∞φσ
- Σσδα≥ⁿ?
-
- [*] ┬ ΣσΘ±≥ΓΦ≥σδⁿφε±≥Φ, 95% ∞α≥σpΦαδα, φα Ωε≥εp√Θ εpΦσφ≥ΦpεΓαφα Γα°α ΩφΦπα,
- Ωα±ασ≥± Φ ≥σ⌡ Φ Σp≤πΦ⌡. HσΩε≥εp√σ ±ετΣα■≥ ±ΓεΦ ∩pΦδεµσφΦ ≥αΩ, ≈≥ε εφΦ
- pαßε≥α■≥ ÷σδΦΩε∞ Γ pα∞Ωα⌡ ∩αφσδΦ, α ΣαδⁿφσΘ°σσ ταΓΦ±Φ≥ ε≥ ≥επε, ß≤Σσ≥ δΦ
- εφε pαßε≥α≥ⁿ ±α∞ε±≥ε ≥σδⁿφε ΦδΦ ²≥α ∩αφσδⁿ ß≤Σσ≥ Γ±≥αΓδσφα Γ ßpα≤τσpσ Γ
- εΩφε ΦδΦ α∩∩δσ≥. ╘εΩ≤± Γ ≥ε∞, ≈≥ε Γ√ Σεδµφ√ ΣεßαΓΦ≥ⁿ ±δ≤°α≥σδ Σδ εΩφα
- ∩pΦδεµσφΦ , ≈≥εß√ ±α∞ε±≥ε ≥σδⁿφε εßpαßα≥√Γα≥ⁿ ±εß√≥Φσ WINDOW_CLOSING (pαφσσ
- εφε φατ√Γαδε±ⁿ WINDOW_DESTROY).
- ┼±δΦ Γ√ ²≥επε φσ ±Σσδασ≥σ, ≥ε ∩pΦ pαßε≥σ Γ Ωα≈σ±≥Γσ ∩pΦδεµσφΦ εΩφε ß≤Σσ≥
- φσΓετ∞εµφε ταΩp√≥ⁿ. ╤∞ε≥pΦ ┬ε∩pε± 15.7, Γ Ωε≥εpε∞ σ±≥ⁿ ∩pΦ∞σp ∩pαΓΦδⁿφεπε
- εßpαßε≥≈ΦΩα.
- ┬ pα∞Ωα⌡ ²≥επε ±÷σφαpΦ , ±δσΣ≤■∙ΦΘ ΩεΣ ∩ετΓεδΦ≥ Γα∞ ε∩pσΣσδΦ≥ⁿ, Γ ΩαΩε∞
- εΩp≤µσφΦΦ Γ√ pαßε≥ασ≥σ:
-
- public boolean isRunningInBrowser() {
- Component p = getParent();
- while(p != null && !(p instanceof Frame)) {
- p = p.getParent();
- }
- return (p == null);
- }
-
- *(╫α±≥ⁿ 13) ╩αΩ ∞φσ φα∩σ≈α≥α≥ⁿ ±≥pαφΦ÷≤ ± α∩∩δσ≥ε∞?
-
- [*] ┴pα≤τσp√ pατpαßα≥√Γα■≥ ∩εΣΣσpµΩ≤ Σδ ²≥επε. Hε, ∩εΩα εφα φσ ß≤Σσ≥
- πε≥εΓα, δ≤≈°ΦΘ Γ√⌡εΣ Σδ Γα± - ∩σ≈α≥α≥ⁿ εßpατ ²Ωpαφα. ┼±δΦ Φ±∩εδⁿτεΓα≥ⁿ
- ßpα≤τσp Σδ ∩σ≈α≥Φ ±≥pαφΦ÷√ ± α∩∩δσ≥ε∞, Γ√ ∞εµσ≥σ ∩εδ≤≈Φ≥ⁿ ∩≤±≥εσ ∞σ±≥ε
- ≥α∞, πΣσ φα⌡εΣΦδ± α∩∩δσ≥. ┬±≥αΓΦΓ ∩εΣΣσpµΩ≤ ∩σ≈α≥Φ Γ α∩∩δσ≥, Γ√ ±∞εµσ≥σ
- φα∩σ≈α≥α≥ⁿ ≥εδⁿΩε α∩∩δσ≥, α φσ Γ±■ ε±≥αδⁿφ≤■ ±≥pαφΦ÷≤.
- ╤∞. ≥αΩµσ FAQ: Q5.2.
-
- *(╫α±≥ⁿ 13) ╩αΩ ∞φσ ∩ε∞σ±≥Φ≥ⁿ ∞εΦ ΣΦαδεπΦ Γ ÷σφ≥pσ (α φσ Γ Γσp⌡φσ∞ δσΓε∞
- ≤πδ≤)?
-
- [*] ╚±∩εδⁿτ≤Θ≥σ ≈≥ε-≥ε ΓpεΣσ ²≥επε:
-
- void center(Component parent) {
- pack();
- Point p = parent.getLocation();
- Dimension d = parent.getSize();
- Dimension s = getSize();
- p.translate((d.width - s.width) / 2, (d.height - s.height) / 2);
- setLocation(p);
- }
-
- *(╫α±≥ⁿ 13) ╩αΩ ΣΓα α∩∩δσ≥α φα εΣφεΘ ±≥pαφΦ÷σ ∞επ≤≥ ΓταΦ∞εΣσΘ±≥ΓεΓα≥ⁿ?
-
- [*] ▌≥ε Σσδασ≥± ∩pΦ ∩ε∞ε∙Φ ∩pε≥εΩεδα InfoBus. ╤∞ε≥pΦ
- http://java.sun.com/beans/infobus/index.html
-
- ╨αφσσ ²≥ε Σσδαδε±ⁿ ≥αΩ. ┬ Γα°σΘ HTML-±≥pαφΦ÷σ ταΣαΘ≥σ ∩εδσ NAME Γ ≥²πσ
- APPLET Σδ α∩∩δσ≥α, ∩εδ≤≈α■∙σπε ±εεß∙σφΦ , ±δσΣ≤■∙Φ∞ εßpατε∞ <APPLET ...
- NAME=φσΩε≥εpεσ╚∞ ...>. ┬ ΩεΣ Σp≤πεπε α∩∩δσ≥α Γ±≥αΓⁿ≥σ
-
- Applet anotherApplet = getAppletContext.getApplet("φσΩε≥εpεσ╚∞ ");
-
- ╧pΦΓσΣΦ≥σ anotherApplet Ω ±εε≥Γσ≥±≥Γ≤■∙σ∞≤ ∩ε≥ε∞Ω≤ Applet Φ ≥επΣα Γ√
- ±∞εµσ≥σ Γ√τ√Γα≥ⁿ δ■ß√σ ∞σ≥εΣ√ ²≥επε α∩∩δσ≥α. Hσ ταß√ΓαΘ≥σ ε ±Φφ⌡pεφΦτα÷ΦΦ,
- ΩεπΣα εßα ∩ε≥εΩα εßpα∙α■≥± Ω εΣφΦ∞ Φ ≥σ∞ µσ ∩σpσ∞σφφ√∞. ▌≥ε pαßε≥ασ≥
- ≥εδⁿΩε, σ±δΦ α∩∩δσ≥√ ΣσΘ±≥ΓΦ≥σδⁿφε φα⌡εΣ ≥± φα εΣφεΘ Φ ≥εΘ µσ ±≥pαφΦ÷σ.
- ┼±δΦ εφΦ ∩pΦφαΣδσµα≥ pατφ√∞ ⌠pσΘ∞α∞, ²≥ε φσ ±pαßε≥ασ≥.
- ┬√ ∞εµσ≥σ ∩pεΘ≥Φ±ⁿ ∩ε Γ±σ∞ α∩∩δσ≥α∞ φα HTML-±≥pαφΦ÷σ, Φ±∩εδⁿτ≤ ΩεΣ,
- ∩εΣεßφ√Θ ∩pΦΓσΣσφφε∞≤ φΦµσ. ╥σ∞ φσ ∞σφσσ, Γ Communicator 4.04 Σδ Win95
- ²≥ε, ∩ε⌡εµσ, φσ pαßε≥ασ≥.
-
- Applet otherApplet;
- AppletContext ac =getAppletContext;
- Enumeration applets = null;
- for (applets=ac.getApplets(); applets.hasMoreElements(); ) {
- otherApplet=(Applet)applets.nextElement();
- if (otherApplet!=this) break;
- // Σσδασ∞ ≈≥ε-≥ε ± otherApplet, φα∩pΦ∞σp,
- // if (otherApplet instanceof FooApplet) ...
- }
-
- HσΩε≥εp√σ ∩pσΣδαπα■≥ Φ±∩εδⁿτεΓα≥ⁿ ±≥α≥Φ≈σ±ΩΦσ ≈δσφ√ εß∙σπε Ωδα±±α Σδ
- εß∞σφα Φφ⌠εp∞α÷ΦσΘ ∞σµΣ≤ α∩∩δσ≥α∞Φ. ▌≥ε φσ pσΩε∞σφΣ≤σ≥± , ≥αΩ ΩαΩ ε±φεΓαφε
- φα ±≥pα≥σπΦΦ ταπp≤τΩΦ Ωδα±±εΓ, Ωε≥εpα ∞εµσ≥ Φτ∞σφΦ≥ⁿ± Γ ß≤Σ≤∙σ∞. Netscape
- ∩ε∞σφ δ σσ Γ εΣφεΘ Φτ ßσ≥α-Γσp±ΦΘ ≥αΩ, ≈≥ε ²≥ε≥ ∞σ≥εΣ φσ pαßε≥αδ, α τα≥σ∞
- ∩ε∞σφ δ σσ εßpα≥φε ≥αΩ, ≈≥ε εφ ταpαßε≥αδ. It doesn't work if you use the
- "mayscript" tag though. (╠φσ φσ ≤Σαδε±ⁿ ²≥ε ∩σpσΓσ±≥Φ - ╧pΦ∞. ∩σpσΓ.)
- ┬ταΦ∞εΣσΘ±≥ΓΦσ ∞σµΣ≤ α∩∩δσ≥α∞Φ ΦφεπΣα ≥pσß≤σ≥± , ΩεπΣα ≤ Γα± Φ∞σσ≥±
- ∩pεπpα∞∞α ±ε ∞φεµσ±≥Γε∞ ²Ωpαφφ√⌡ ⌠εp∞ Φ Γ√ φσ ⌡ε≥Φ≥σ Γ√φ≤µΣα≥ⁿ ∩εδⁿτεΓα≥σδ
- ταπp≤µα≥ⁿ Γ±σ ±pατ≤. ╬Σφα Φτ αδⁿ≥σpφα≥ΦΓ - εß·σΣΦφΦ≥ⁿ Φ⌡ Γ εΣΦφ α∩∩δσ≥ ±
- ΣΓ≤∞ GUI. ╤≥αpαΘ≥σ±ⁿ Φτßσπα≥ⁿ φσεß⌡εΣΦ∞ε±≥Φ εß∙σφΦ α∩∩δσ≥εΓ ∞σµΣ≤ ±εßεΘ.
- ╠εµσ≥σ ≥αΩµσ ∩ε±∞ε≥pσ≥ⁿ URL
- http://java.sun.com:81/products/hotjava/1.1/applet_environment.html πΣσ
- pα±±Ωατ√Γασ≥± , ΩαΩ ²≥ε ∞εµφε ±Σσδα≥ⁿ Γ HotJava 1.1. ╨σΩε∞σφΣα÷Φ :
- ΦτßσπαΘ≥σ ΩεΣα, ταΓΦ± ∙σπε ε≥ ßpα≤τσpα.
-
- *(╫α±≥ⁿ 13) ╩αΩ ∞φσ Φτ∞σφΦ≥ⁿ pατ∞σp α∩∩δσ≥α?
-
- [*] ┼±δΦ Γ√ ⌡ε≥Φ≥σ Φ∞σ≥ⁿ Γετ∞εµφε±≥ⁿ Φτ∞σφ ≥ⁿ pατ∞σp√ α∩∩δσ≥α, Γ√ Σεδµφ√
- ±ετΣα≥ⁿ Γφσ°φσσ εΩφε, pατ∞σp√ Ωε≥εpεπε ∞εµφε ß≤Σσ≥ ∞σφ ≥ⁿ φσταΓΦ±Φ∞ε.
- ╠εµφε ∩pσΣδεµΦ≥ⁿ Φ±∩εδⁿτεΓα≥ⁿ τφα≈σφΦ Γ ∩pε÷σφ≥α⌡ ∩pΦ ταΣαφΦΦ
- Γ√±ε≥√/°ΦpΦφ√ α∩∩δσ≥α, φα∩pΦ∞σp:
-
- <APPLET CODE="lewinsky.class" WIDTH="100%" HEIGHT="100%">
-
-
- ┬√ φσ ∞εµσ≥σ ∞σφ ≥ⁿ pατ∞σp√ α∩∩δσ≥α φα∩p ∞≤■, φε εφΦ Φτ∞σφ ≥± , ΩεπΣα
- Φτ∞σφ ≥± pατ∞σp√ εΩφα ßpα≤τσpα (∩pεΓσpσφε Σδ Netscape 3.04 Φ 4.04, φε φσ
- pαßε≥ασ≥ Γ appletviewer'σ). ┼±δΦ φα Γα°σΘ HTML-±≥pαφΦ÷σ ßεδⁿ°σ φΦ≈σπε φσ≥ Φ
- Γ√ Φ±∩εδⁿτ≤σ≥σ 100% Γ Ωα≈σ±≥Γσ °ΦpΦφ√ Φ Γ√±ε≥√, εΩφε ßpα≤τσpα Γ√πδ ΣΦ≥
- ∩ε≈≥Φ ΩαΩ φα±≥ε ∙σσ ∩pΦδεµσφΦσ.
- ╬≈σφⁿ Φτε∙pσφφ√Θ ±∩ε±εß: τα±≥αΓΦ≥ⁿ ßpα≤τσp ταπp≤µα≥ⁿ ±≥pαφΦ÷≤ ± α∩∩δσ≥ε∞
- ταφεΓε Γ± ΩΦΘ pατ, ΩεπΣα σπε pατ∞σp√ ∞σφ ■≥± , ± φεΓ√∞Φ τφα≈σφΦ ∞Φ °ΦpΦφ√ Φ
- Γ√±ε≥√ (²≥ε, Γσpε ≥φε, φσ ≥ε, ≈≥ε ß√ Γα∞ ⌡ε≥σδε±ⁿ). ┬α∞, ±Ωεpσσ Γ±σπε,
- ∩εφαΣεßΦ≥± Javascript Σδ ΣΦφα∞Φ≈σ±ΩεΘ πσφσpα÷ΦΦ ±≥pαφΦ÷√ ∩pΦ ∩ε∞ε∙Φ
- document.write("..."), ΩεπΣα pατ∞σp√ ßpα≤τσpα Φτ∞σφ ■≥± . Hσ pσΩε∞σφΣ≤σ≥± .
- ─p≤πεΘ ΓαpΦαφ≥ - Φ±∩εδⁿτεΓα≥ⁿ Ωδα±± SplitPane Φτ JFC.
-
- *(╫α±≥ⁿ 13) ╩αΩ ∞φσ ∩≡ε≈Φ≥α≥ⁿ ⌠αΘδ, ⌡≡αφ ∙ΦΘ± Γ JAR?
-
- [*] ╤α∞√Θ δ≤≈°ΦΘ ±∩ε±εß ²≥ε Φ±∩εδⁿτεΓαφΦσ Class.getResourceAsStream(),
- Ωε≥ε≡√Θ Σα±≥ Γα∞ Γ⌡εΣφεΘ ∩ε≥εΩ Φτ Ωε≥ε≡επε τα≥σ∞ Γ√ ±∞εµσ≥σ ∩≡ε≈Φ≥α≥ⁿ
- φ≤µφ√Θ ≥σΩ±≥εΓ√Θ ⌠αΘδ, δσµα∙ΦΘ Γ JAR. ┬√ ∞εµσ≥σ Σσδα≥ⁿ ≥αΩ, ≈≥εß√,
- Σε∩≤±≥Φ∞, Γτ ≥ⁿ ∩α≡α∞σ≥≡ Σδ α∩∩δσ≥α Φτ ≥σΩ±≥εΓεπε ⌠αΘδα.
- ─≡≤πΦσ ±αΘ≥√: ╤∞ε≥≡Φ≥σ http://www.uq.net.au/~zzcmumme Σδ ∩≡Φ∞σ≡εΓ.
-
- *(╫α±≥ⁿ 13) ╩αΩ ∞φσ εßετφα≈Φ≥ⁿ(sign) ∞εΘ α∩∩δσ≥?
-
- [*] ╨ατ≡αßε≥≈ΦΩΦ ß≡α≤τσ≡εΓ ±ετΣαδΦ φσταΓΦ±Φ∞√σ Φ ≡ατφ√σ ≡σ°σφΦ Σδ
- εßετφα≈σφΦ α∩∩δσ≥εΓ (αδΦα±εΓ). ╟Σσ±ⁿ σ±≥ⁿ φσ±ΩεδⁿΩε URL'εΓ ∩ε ²≥ε∞≤
- ∩εΓεΣ≤.
-
- ╧ε±∞ε≥≡Φ≥σ Java Signing FAQ φα http://www.fastlane.net/~tlandry/javafaq.txt
-
- ╧≡ε≈Φ≥αΘ≥σ ε±φεΓ√ εßετφα≈σφΦΘ(basics of signing) τΣσ±ⁿ:
- http://www.javareport.com/html/features/archive/9802/somers.shtml
- ╧ε∞φΦ≥σ, ≈≥ε ∞σ⌡αφΦτ∞√ εßετφα≈σφΦΘ Φ ≤∩≡αΓδσφΦΘ εßετφα≈σφΦΘ ±Φδⁿφε Φτ∞σφσφ√
- ∞σµΣ≤ Java 1.1 Φ Java 2.
-
- Netscape ∩≡σΣδαπασ≥:
- http://developer.netscape.com/docs/manuals/signedobj/javadoc/netscape_security_
- Target.html
-
- https://certs.netscape.com/client.html
- http://developer.netscape.com/docs/manuals/signedobj/capabilities/contents.htm
-
- http://developer.netscape.com/docs/manuals/signedobj/targets/contents.htm
-
- Micro$oft ∩≡σΣδαπασ≥:
- http://www.microsoft.com/java/security/secfaq.htm
- http://www.microsoft.com/java/sdk/20/tools/signcode.htm
-
- ------------------------------
-
- 14. Multi-Media
-
- 1. (╫α±≥ⁿ 14) ╩αΩΦσ ±≤∙σ±≥Γ≤σ≥ ⌡ε≡ε°Φσ Java Image ßΦßδΦε≥σ≈ΩΦ?
-
- [*] ╧ε∩≡εß≤Θ≥σ Java Image Management Interface (JIMI), Ωε≥ε≡√Θ Φ∞σσ≥
- ßσ±∩δα≥φ√Θ Φ φσεπ≡αφΦ≈σφφ√Θ ∩σ≡ΦεΣ Φ±∩εδⁿτεΓαφΦ . JIMI ²≥ε φαßε≡
- Φφ±≥≡≤∞σφ≥εΓ, Ωε≥ε≡√Θ ∩ετΓεδΦ≥ Γα°Φ∞ Java ∩≡επ≡α∞∞α∞ ≈Φ≥α≥ⁿ Φ
- τα∩Φ±√Γα≥ⁿ ∞φεπΦσ π≡α⌠Φ≈σ±ΩΦσ ⌠ε≡∞α≥√ ⌠αΘδεΓ (PNG, JPG, BMP, GIF Φ
- ≥.Σ.). JIMI φα∩Φ±αφ φα 100% Java, Φ εφ ε≥δΦ≈φε ≡αßε≥ασ≥, α ≥αΩµσ δσπεΩ
- Γ Φ±∩εδⁿτεΓαφΦΦ φεΓΦ≈Ω≤. http://www.activated.com/jimi.html
-
- 2. (╫α±≥ⁿ 14) ╧ε≈σ∞≤ φσ Φπ≡α■≥ ∞εΦ τΓ≤ΩεΓ√σ ⌠αΘδ√?
-
- [*] Java 1.1 Φ ßεδσσ ≡αφφΦσ Γσ≡±ΦΦ ∩εΣΣσ≡µΦΓα■≥ ≥εδⁿΩε εΣΦφ ⌠ε≡∞α≥
- ⌠αΘδεΓ. ╟Γ≤ΩεΓεΘ ⌠αΘδ Σεδµσφ ß√≥ⁿ τα∩Φ±αφ Γ ⌠ε≡∞α≥σ .au, 8 KHz, ∞εφε,
- Φ Γ ΩεΣσ mu-law. ┼±δΦ Γα° τΓ≤ΩεΓεΘ ⌠αΘδ φα⌡εΣΦ≥± Γ ε≥δΦ≈φε∞ ε≥ ²≥επε
- ⌠ε≡∞α≥σ (φα∩≡Φ∞σ≡, wav) ΦδΦ τα∩Φ±αφ φα Σ≡≤πεΘ ≈α±≥ε≥σ, ± Σ≡≤πΦ∞Φ
- ∩α≡α∞σ≥≡α∞Φ, ≥ε Γ√ Σεδµφ√ ε≥ΩεφΓσ≡≥Φ≡εΓα≥ⁿ Γ ≥ε≥ ⌠ε≡∞α≥ Φ ± ≥σ∞Φ µσ
- ±ΓεΘ±≥Γα∞Φ, Ωε≥ε≡√σ ≤Ωαταφ√ Γ√°σ. ╧εΣΣσ≡µΩα ⌠ε≡∞α≥α wav Φ Σ≡≤πΦ⌡
- Γδ σ≥± ≈α±≥ⁿ■ Java Media Framework, Ωε≥ε≡√Θ ß≤Σσ≥ Γ JDK 1.2.
- ╧εΦ∙Φ≥σ φα http://www.yahoo.com GoldWave Σδ Win 95, sox Σδ Unix Φ
- ∩ε⌡εµΦσ ∩≡σεß≡ατεΓ√Γα■∙Φσ ≤≥ΦδΦ≥√ Σδ Σ≡≤πΦ⌡ ∩δα≥⌠ε≡∞.
- ─≡≤πΦσ ±αΘ≥√:
- o ╬Σφ≤ ≤≥ΦδΦ≥≤ ≥αΩεπε ≥Φ∩α ∞εµσ≥σ φαΘ≥Φ φα
- http://saturn.math.uaa.alaska.edu/~hursha
- o ╚±⌡εΣφ√Θ ΩεΣ Ωδα±±α Java, ∩ετΓεδ ■∙σπε Φπ≡α≥ⁿ εß√≈φ√Θ PCM .WAV
- ⌠αΘδ√ φα⌡εΣΦ≥± τΣσ±ⁿ:
- http://www.shef.ac.uk/~cs1mjp/Java/WhiteBoard/WavePlayer.html.
- ┼πε ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ Γ δ■ßε∞ Java ∩≡ΦδεµσφΦΦ ΦδΦ α∩∩δσ≥σ.
-
- 3. (╫α±≥ⁿ 14) ╩αΩ ±Σσδα≥ⁿ ΓΦΣσε ∩ε≥εΩΦ Φ±∩εδⁿτ≤ Java?
-
- [*] ╟Σσ±ⁿ ∞εµφε Φ±∩√≥α≥ⁿ StreamBean. ╧ε±∞ε≥≡Φ≥σ φα
- http://www.streambean.com/streambean/
-
- 4. (Sect. 14) ╧εΣΣσ≡µΦΓασ≥ δΦ Java αφΦ∞Φ≡εΓαφφ√σ GIF'√?
-
- [*] Java 1.0.2 Φ ßεδσσ ≡αφφΦσ Γσ≡±ΦΦ Φ±∩εδⁿτ≤■≥ GIF Φ JPEG ⌠ε≡∞α≥√, Φ
- φσ ∩εΣΣσ≡µΦΓα■≥ GIF89 αφΦ∞Φ≡εΓαφφ√Θ GIF ⌠ε≡∞α≥. (└φΦ∞Φ≡εΓαφφ√Θ GIF ²≥ε
- ≥ε≥, Ωε≥ε≡√Θ ±εΣσ≡µΦ≥ ±δσΣ≤■∙Φσ εΣΦφ τα Σ≡≤πΦ∞ ΩαΣ≡√ Ωα≡≥ΦφΩΦ, Ωε≥ε≡√σ
- ß√±≥≡ε ±∞σφ ■≥ Σ≡≤π Σ≡≤πα φα ²Ω≡αφσ, ≈≥εß√ ∩εΩατα≥ⁿ ΩαΩεσ-δΦßε
- ΣΓΦµσφΦσ). ╩επΣα Γ√ Γ√ΓεΣΦ≥σ φα ²Ω≡αφ αφΦ∞Φ≡εΓαφφ√Θ GIF Γ Java 1.0.2,
- Γ√ ≤ΓΦΣΦ≥σ ≥εδⁿΩε ∩σ≡Γ√Θ ΩαΣ≡. Hσ ±≤∙σ±≥Γ≤σ≥ δσπΩεπε ∩≤≥Φ, ≈≥εß√
- ∩εΩατα≥ⁿ ε±≥αδⁿφ√σ ΩαΣ≡√.
- ╧≡σΦ∞≤∙σ±≥Γε∞ αφΦ∞Φ≡εΓαφφ√⌡ GIF ⌠αΘδεΓ Γδ σ≥± ≥ε, ≈≥ε Γ√ ±Ωα≈ΦΓασ≥σ
- δΦ°ⁿ εΣΦφ ⌠αΘδ, Φ ∩εδ≤≈ασ≥σ φσ∩δε⌡≤■ αφΦ∞α÷Φ■. ╧≡σΦ∞≤∙σ±≥Γε∞
- ∩≡επ≡α∞∞φεπε Ωεφ- ≥≡εδ φαΣ ε≥Σσδⁿφ√∞Φ ΩαΣ≡α∞Φ Γδ σ≥± ≥ε, ≈≥ε Γ√
- Ωεφ≥≡εδΦ≡≤σ≥σ ±Ωε≡ε±≥ⁿ Φ ∩ε≡ ΣεΩ ∩εΩατα ΩαΣ≡εΓ.
- ╤■≡∩≡Φτ: JDK 1.1 ∩εΣΣσ≡µΦΓασ≥ αφΦ∞Φ≡εΓαφφ√Θ ∩εΩατ ≥αΩΦ⌡ GIF-⌠αΘδεΓ.
- ─δ ∩≡ε±≥σΘ°σΘ αφΦ∞α÷ΦΦ αφΦ∞Φ≡εΓαφφ√σ GIF'√ φα∞φεπε ßεδσσ δσπΩΦ Φ
- ∩≡ε±≥√, ≈σ∞ ±ετΣαφΦσ ±δεµφ√⌡ ≥ε≈φ√⌡ αφΦ∞α÷ΦΘ.
-
- 5. (╫α±≥ⁿ 14) ╩αΩ ±ετΣαΓα≥ⁿ αφΦ∞Φ≡εΓαφφ√σ GIF'√?
-
- [*] ╚±∩εδⁿτ≤Θ≥σ GIFanimator ε≥ ULead (πεΓε≡ ≥, ²≥ε ±α∞εσ δ≤≈°σσ)
- http://www.ulead.com, ΦδΦ GIF Construction Set ε≥ Alchemy Mindworks
-
- 6. (╫α±≥ⁿ 14) ╩αΩ ∞φσ ∩ε∞σ°α≥ⁿ αφΦ∞Φ≡εΓαφφ√∞ GIF'α∞ ∞σδΩα≥ⁿ ∩≡Φ Γ√ΓεΣσ φα
- ²Ω≡αφ ?
-
- [*] ╧ε⌡εµσ, ∩≡εßδσ∞α Γ ≥ε∞, ≈≥ε Γ Γα°σ∞ ∞σ≥εΣσ ≡Φ±εΓαφΦ Γ√ Σσδασ≥σ
- ≥αΩ:
-
- g.drawImage(img, ix, iy, this);
-
-
- ╤δσΣ≤σ≥ Σσδα≥ⁿ Γε≥ ≥αΩ:
-
- g.drawImage(img, ix, iy, getBackground(), this);
-
-
- ▌≥ε Φτ∞σφΦ≥ Γ±σ ∩≡ετ≡α≈φ√σ ∞σ±≥α Ωα≡≥ΦφΩΦ φα ÷Γσ≥ ταΣφσπε ∩δαφα ∩σ≡σΣ
- Γ√ΓεΣε∞ Ωα≡≥ΦφΩΦ φα ²Ω≡αφ. ┼±δΦ Γ√ ß≤Σσ≥σ Γ√ΓεΣΦ≥ⁿ ∩≡ετ≡α≈φ√σ φα∩≡ ∞≤■
- φα ²Ω≡αφ, ≥ε εφΦ ß≤Σ≤≥ ∞σ≡÷α≥ⁿ.
- ┼±δΦ ²≥ε φσ ∩ε∞επασ≥, ≥επΣα ∩≡εΓσ≡ⁿ≥σ Φ±∩εδⁿτ≤σ≥± δΦ imageUpdate
-
- public boolean imageUpdate(Image img, int flags, int x, int y,
- int width, int height) {
- if ((flags & (FRAMEBITS|ALLBITS))!= 0) repaint();
- return (flags & (ALLBITS|ABORT)) == 0;
- }
-
-
- update ²≥ε
-
- public void update(Graphics g) { paint(g); }
-
-
- ┼±δΦ ≤ Γα± σ±≥ⁿ ⌠εφεΓα Ωα≡≥ΦφΩα, φα⌡εΣ ∙α ± τα ≈α±≥Φ≈φε ∩≡ετ≡α≈φ√∞
- αφΦ∞Φ≡εΓαφφ√∞ GIF'ε∞, ≥ε Γα∞ ∩≡ΦΣσ≥± Σσδα≥ⁿ ΣΓεΘφεΘ ß≤⌠σ≡. ┬√ ∞εµσ≥σ
- ΩαΣ≡Φ≡εΓα≥ⁿ ⌠εφεΓεσ Φτεß≡αµσφΦσ Σδ ≥επε, ≈≥εß√ φσ Φ±∩εδⁿτεΓα≥ⁿ
- ΣΓεΘφεΘ ß≤⌠⌠σ≡ Γ±σπε ∩≡ΦδεµσφΦ Φ φσ ταφΦ∞α≥ⁿ ±δΦ°Ωε∞ ∞φεπε ∩α∞ ≥Φ.
-
- 7. (╫α±≥ⁿ 14) ╧εΣΣσ≡µΦΓασ≥ δΦ Java ∩≡ετ≡α≈φ√σ GIF'√?
-
- ╩α≡≥ΦφΩΦ GIF89a ± ∩≡ετ≡α≈φ√∞ ⌠εφε∞ ∩εΩαµ≤≥± ΩαΩ ∩≡ετ≡α≈φ√σ ßστ
- Σαδⁿ°σΘ°σΘ ⌠Φδⁿ≥≡α÷ΦΦ. ▌≥ε ∩εΣΣσµΦΓασ≥± φα≈Φφα ± Γσ≡±ΦΦ 1.0. Java
- Ωε≡≡σΩ≥φε Γ√ΓεΣΦ≥ Φ αφΦ∞Φ≡εΓαφφ√σ GIF'√ Φ ∩≡ετ≡α≈φ√σ GIF'√.
- ┬√ ∞εµσ≥σ τα∩εδφΦ≥ⁿ ∩≡ετ≡α≈φ√σ ∩ΦΩ±σδ√ ÷Γσ≥ε∞ (≥αΩ ΩαΩ εφΦ ∩ε Γδ ■≥±
- φσ-∩≡ετ≡α≈φ√∞Φ Γ Java ). ╧≡ε±≥ε ±ΣσδαΘ≥σ ≥ε≈φεσ τα∩εδφσφΦσ ÷Γσ≥ε∞.
-
- drawImage(img, x, y, w, h, fillcolor, this);
-
-
- ─αδσσ, Γ√ ∞εµσ≥σ ε≥⌠Φδⁿ≥≡εΓα≥ⁿ ∩ΦΩ±σδ√ Φτεß≡αµσφΦ Σδ ΓετΓ≡α∙σφΦ
- ßΦ≥εΓ, Ωε≥ε≡√σ Γ√ µσδασ≥σ ±Σσδα≥ⁿ ∩≡ετ≡α≈φ√∞Φ. ╬ΣφαΩε, ßεδⁿ°σσ ≈≥ε Γ√
- ∞εµσ≥σ ±Σσδα≥ⁿ ²≥ε εßφα≡≤µΦ≥ⁿ ≈≥ε φα⌡εΣΦ≥± ∩εΣ Ωα≡≥ΦφΩεΘ. ┬√ φσ
- ∞εµσ≥σ ∩ε±∞ε≥≡σ≥ⁿ ≈≥ε φα⌡εΣΦ≥± ∩εΣ α∩∩δσ≥ε∞(φα∩≡Φ∞σ≡ Γ ±α∞ε∞
- ß≡α≤τσ≡σ). ╧ε ≤∞εδ≈αφΦ■ ≤ α∩∩δσ≥εΓ ≤±≥αφαΓδΦΓασ≥± ∩≡ε±≥εΘ ±σ≡√Θ ÷Γσ≥
- φα ⌠εφσ.
-
- 8. (╫α±≥ⁿ 14) ╩αΩ ∞επ≤ ∩≡εΦπ≡α≥ⁿ ΓΦΣσε φα Java?
-
- [*] ╚±∩εδⁿτ≤σ≥σ Java Media Framework Player API.
- ┼∙σ ±αΘ≥√:
- o ╤∩σ÷Φ⌠ΦΩα÷Φ■ Java Media Framework Player API ∞εµφε φαΘ≥Φ φα
- http://java.sun.com/products/java-media/jmf/
- o Intel Γ√∩≤±≥Φδα SDK Σδ Java Media Framework Player API. ▌≥α SDK
- ∩≡σΣδαπασ≥ Σδ Windows 95 Φ Windows NT. ─δ ßεδⁿ°σΘ Φφ⌠ε≡∞α÷ΦΦ,
- ±∞ε≥≡Φ≥σ http://developer.intel.com/ial/jmedia
- o SGI Γ√∩≤±≥Φδα Φφ±≥≡≤∞σφ≥ JMF Σδ IRIX: ╤∞ε≥≡Φ ≥σ
- http://www.sgi.com/Products/motion/
-
- *(╫α±≥ⁿ 14) ╩αΩεΓα ∩pΦ≈Φφα ²≥εΘ ∩pεßδσ∞√:
-
- $ appletviewer m.html
- Premature end of JPEG file
- sun.awt.image.Im...Exception: JPEG datastream contains no image
- at sun.awt.image. ... .produceImage(JPEGImageDecoder.java:133)
- at sun.awt.image.Inpu...mageSource.doFetch(
- InputStreamImageSource.java:215)
- at sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
-
- [*] ┬ ≡αφφΦ⌡ Γ√∩≤±Ωα⌡ JDK φσ ΦτΓσ±≥φ√ ßαπΦ, Ωε≥ε≡√σ ∞επ≤≥ ΓΦ≥ⁿ± ∩≡Φ≈ΦφεΘ
- ε°ΦßΩΦ ∩≡Φ ∩≡ε≈≥σφΦΦ JPEG φα ∞σΣδσφφ√⌡ ±εσΣΦφσφΦ ⌡. ╬°ΦßΩα ∞εµσ≥ ∩ε ΓΦ≥ⁿ±
- σ±δΦ JPEG ±εΣσ≡µΦ≥ ßεδⁿ°εΘ ßδεΩ Σαφφ√⌡ ∩≡ΦδεµσφΦΘ (APPn marker) - ∩≡εßδσ∞α
- ∩≡ε ΓΦ≥± Γ ≥ε∞, ≈≥ε ΣσΩεΣσ≡ JPEG ∩√≥ασ≥± ∩≡ε∩≤±≥Φ≥ⁿ ∞Φ∞ε APPn Φ ±ßΦΓασ≥±
- σ±δΦ φσ Γσ±ⁿ APPn ß√δ ∩≡Φφ ≥ε Ω ²≥ε∞≤ ∞ε∞σφ≥≤. ╧≡ΦΓσΣσφφεσ Γ√°σ ±εεß∙σφΦσ
- εß ε°ΦßΩσ ²≥ε ≥εδⁿΩε εΣφε Φτ φσ±ΩεδⁿΩΦ⌡ Γετ∞εµφ√⌡, φε Γ Ωε≡φσ εφΦ Γ±σ
- εΣΦφαΩεΓ√.
- Photoshop ²≥ε φαΦßεδσσ ≈α±≥√Θ Φ±≥ε≈φΦΩ JPEG'εΓ ±εΣσ≡µα∙Φ⌡ ßεδⁿ°Φσ APPn
- ßδεΩΦ. ┬ ε±εßσφφε±≥Φ, σ±δΦ ┬√ ∩ετΓεδΦ≥σ Photoshop 4 τα∩Φ±α≥ⁿ ∞ΦφΦα≥■≡≤
- (thumbnail) Γ JPEG, Γ∞σ±≥σ ± φσΘ εφ τα∩Φ⌡φσ≥ δΦ≈φ≤■ ∩ε∞σ≥Ω≤ APPn
- Photoshop'α Γ φσ±ΩεδⁿΩε K, ≈σπε εß√≈φε Γ∩εδφσ Σε±≥α≥ε≈φε Σδ ∩εδ≤≈σφΦ
- ε°ΦßΩΦ.
- ╤≤∙σ±≥Γ≤σ≥ φσ±ΩεδⁿΩε Γετ∞εµφ√⌡ ≡σ°σφΦΘ:
-
- * ┬ετⁿ∞Φ≥σ φεΓ√Θ JDK - ²≥≤ ∩≡εßδσ∞≤ εßσ∙α■≥ Φ±∩≡αΓΦ≥ⁿ Γ Γσ≡±ΦΦ 1.1.
- (┼±δΦ ┬√ Γ√ΩδαΣ√Γασ≥σ Φτεß≡αµσφΦ φα Web, ²≥επε φσ Σε±≥α≥ε≈φε Σδ
- ≡σ°σφΦ , ≥αΩ ΩαΩ ┬√ φσ ±∞εµσ≥σ ∩≡ΦφΦ∞α≥ⁿ ≥εδⁿΩε ≥σ⌡ ∩ε±σ≥Φ≥σδσΘ, φα
- ±ΓεΘ ±αΘ≥, Ω≥ε Φ∞σσ≥ ±Γσµ≤■ Γσ≡±Φ■ Java.
- * ╩επΣα ±ετΣασ≥σ JPEG'Φ Σδ Web Φ±∩εδⁿτ≤ Photoshop, ß≤Σⁿ≥σ ≤Γσ≡σφ√, ≈≥ε
- Γ√Ωδ■≈ΦδΦ ε∩÷Φ■ "╤ε⌡≡αφΦ≥ⁿ ∞ΦφΦ≥■≡≤" ("Save thumbnails"). (▌≥ε ⌡ε≡ε°α
- ΦΣσ φα ±εΓ±σ∞ ΦτßαΓΦ≥ⁿ± ε≥ ßαπα, ∩ε≥ε∞≤ ≈≥ε ∞ΦφΦα≥■≡α ≥εδⁿΩε ≥≡α≥α
- Γ≡σ∞σφΦ ∩σ≡σΩα≈ΩΦ ≥αΩ Σεδπε, ∩εΩα Web ß≡α≤τσ≡ φσ ±εεß≡ατΦ≥. ┬√ ∞εµσ≥σ
- Γ±σ σ∙σ Φ∞σ≥ⁿ φσ∩≡Φ ≥φε±≥Φ σ±δΦ ≤ ┬α± Φ∞σ■≥± ΣδΦφφ√σ Ωε∞∞σφ≥α≡ΦΦ ΦδΦ
- ∞φεµσ±≥Γε ∩≤≥σΘ ±ε⌡≡αφσφφ√⌡ Γ ⌠αΘδσ, φε Γ 99% ±δ≤≈ασΓ, ΦτßαΓδσφΦσ ε≥
- ∞ΦφΦα≥■≡ τα±≥αΓΦ≥ APPn Photoshop'α Σε±≥α≥ε≈φε ≤∞σφⁿ°Φ≥ⁿ± , ≈≥εß√ φσ
- Γ√τ√Γα≥ⁿ ßαπ Java.
- * ╚±∩εδⁿτ≤Θ≥σ ≥αΩεΘ Φφ±≥≡≤∞σφ≥, ΩαΩ 'jpegtran' (ε≥ HσταΓΦ±Φ∞εΘ JPEG
- ├≡≤∩∩√ - Independent JPEG Group) ≈≥εß√ ε≥≡στα≥ⁿ APPn Photoshop'α
- Γ±σ÷σδε ßστ ΩαΩεΘ-φΦß≤Σⁿ ∩ε≥σ≡Φ Ωα≈σ±≥Γα ∩≡Φ ²≥ε∞. ▌≥ε ≡σΩΩε∞σφΣ≤σ≥±
- Σδ ≥σ⌡, Ω≥ε Γ√φ≤µΣσφ√ ±ετΣαΓα≥ⁿ Ωε∞∞σφ≥α≡ΦΦ ΦδΦ σ∙σ ≈≥ε-φΦß≤Σⁿ, ≈≥ε
- ταΘ∞σ≥ ∞φεπε ∞σ±≥α Γ JPEG ⌠αΘδσ.
- * (┬ ∩ε±δσΣφ■■ ε≈σ≡σΣⁿ) ╟απ≡≤τΦ≥σ Φ ∩σ≡στα∩Φ°Φ≥σ Ωα≡≥ΦφΩ≤ Γ Σ≡≤πε∞
- π≡α⌠Φ≈σ±Ωε∞ ≡σΣαΩ≥ε≡σ, Ωε≥ε≡√Θ φσ Γ±≥αΓΦ≥ δΦ°φ■■ APPn ΦδΦ Σ≡≤πΦσ
- φσφ≤µφ√σ Σαφφ√σ. ▌≥ε, ε≈σΓΦΣφε, ≤⌡≤Σ°Φ≥ Γα° JPEG Φ φσ ≡σΩΩε∞σφΣ≤■
- ²≥ε ≥σ∞, Ωε∞≤ ε±εßσφφε Γαµφε Ωα≈σ±≥Γε Φτεß≡αµσφΦ .
-
- ╦■ßα ßεδⁿ°α Γσ≡⌡φ ∞σ≥Ωα(overhead marker) ΓΦ≥± ∩≡Φ≈ΦφεΘ ≥αΩεΘ µσ
- ∩≡εßδσ∞√; 4K Ωε∞∞σφ≥α≡ΦσΓ, ±Ωαµσ∞, Γ ∞σ≥Ωσ COM. ╚≥αΩ, Photoshop ²≥ε φσ
- σΣΦφ±≥Γσφφ√Θ "≡ατΣ≡αµΦ≥σδⁿ" ²≥επε ßαπα.
-
- *(╫α±≥ⁿ 14) ╩αΩ ∞επ≤ ∩≡σεß≡ατεΓ√Γα≥ⁿ GIF Φ JPEG ⌠ε≡∞α≥√ Σ≡≤π Γ Σ≡≤πα?
-
- [*] ╬ΣφΦ∞ ±δεΓε∞, φΦΩαΩ.
- ╥≡≤Σφε ∩σ≡σΣσδα≥ⁿ ⌡ε≡ε°ε ≡αßε≥α■∙ΦΘ JPEG Γ ≥αΩµσ ⌡ε≡ε°≤■ Ωα≡≥ΦφΩ≤ ⌠ε≡∞α≥α
- GIF. ╚φεπΣα, ± ßεδⁿ°Φ∞ ≥≡≤Σε∞, ┬√ ∞εµσ≥σ ∩εδ≤≈Φ≥ⁿ ∩≡Φσ∞δσ∞εσ
- ∩≡σεß≡ατεΓαφΦσ, φε Γ ßεδⁿ°Φφ±≥Γσ ±δ≤≈ασΓ GIF<->JPEG ΩεφΓσ≡≥Φ≡εΓαφΦσ ∩≡ε±≥ε
- ∩≡σΓ≡α≥Φ≥ ┬α°σ Φτεß≡αµσφΦσ Γ "Ωα°≤". ╦≤≈°σ ß≤Σσ≥, σ±δΦ Γα°Φ Ωα≡≥ΦφΩΦ ±≡ατ≤
- ß≤Σ≤≥ Γ φ≤µφε∞ ⌠ε≡∞α≥σ.
- ─≡≤πΦσ ≡σ°σφΦ :
-
- * ┼±δΦ ┬√ ε∩≡σΣσδσφφε ⌡ε≥Φ≥σ ∩≡σεß≡ατεΓα≥ⁿ ⌠ε≡∞α≥ Φτεß≡αµσφΦ ,
- ∩ε∩≡εß≤Θ≥σ GBM (Generalized Bitmap Module). ▌≥ε≥ ∩αΩσ≥ Φ∞σσ≥ GNU
- δΦ÷σφτΦ■, φα C, Φ ε≈σφⁿ ⌡ε≡ε° Γ Φ±∩εδⁿτεΓαφΦΦ. ╧εΦ∙Φ≥σ σπε φα
- http://www.interalpha.net/customer/nyangau/
- GBM ⌡ε≡ε°ε ΩεφΓσ≡≥Φ≡≤σ≥ Γ JPEG ∩pαΩ≥Φ≈σ±ΩΦ ßστ ∩ε≥σpΦ Ωα≈σ±≥Γα. ╬φ
- ≥αΩµσ ∩≡σεß≡ατεΓ√Γασ≥ Φτ/Γ εΩεδε 20 Σ≡≤πΦ⌡ ⌠ε≡∞α≥εΓ, Σσδασ≥
- ΩαΣ≡Φ≡εΓαφΦσ(cropping), Φτ∞σφ σ≥ ≡ατ∞σ≡√, ÷Γσ≥α, Ωε≡≡σΩ≥Φ≡≤σ≥ πα∞∞≤,
- ∩εδ≤≥εφα, Γ±σ ≈≥ε ⌡ε≥Φ≥σ. ╚τφα≈αδⁿφ√Θ Φ±⌡εΣφ√Θ ΩεΣ GBM φσ ∩εΣΣσ≡µΦΓασ≥
- JPEG φα∩≡ ∞≤■, φε Φ±∩εδⁿτ≤Θ≥σ ΩεΣ ∩εΣΣσ≡µΦΓα■∙ΦΘ ²≥ε≥ ⌠ε≡∞α≥ ε≥
- IJG(Independent JPEG Group), φατ√Γασ∞√Θ jpeg-6a Φ Γτ ≥ⁿ σπε ∞εµφε
- τΣσ±ⁿ -
- ftp://sun2.urz.uni-heidelberg.de/pub/simtel/graphics/jpegsr6a.zip
- * ─δ ßεδⁿ°σΘ Φφ⌠ε≡∞α÷ΦΦ ±∞ε≥≡Φ≥σ JPEG FAQ φα
- http://www.faqs.org/faqs/jpeg-faq/
-
- *(╫α±≥ⁿ 14) ┼±δΦ σ±≥ⁿ ±εΣσpµα∙ΦΘ ΦτεßpαµσφΦσ InputStream (ßεδⁿ°εΘ ⌠αΘδ),
- ΩαΩ σπε Γ√Γσ±≥Φ φα ²Ωpαφ ßστ ≥εp∞ετεΓ?
-
- [*] ╚±∩εδⁿτ≤Θ≥σ ²≥ε≥ ∞σ≥εΣ, Φ some adroit shuffling.
-
-
- Toolkit.getImage(URL url)
-
-
- ╤ετΣαΘ≥σ φΦ≥ⁿ(thread) Ωε≥ε≡α ß≤Σσ≥ ≈σ∞-≥ε Γ≡εΣσ http ±σ≡Γσ≡α. ╟α±≥αΓⁿ≥σ σσ
- ∩≡ε±δ≤°ΦΓα≥ⁿ ΩαΩεΘ-φΦß≤Σⁿ ∩ε≡≥ (8765 φα∩≡Φ∞σ≡) φα Γ⌡εΣ ∙Φσ τα∩≡ε±√. ╩επΣα
- φΦ≥ⁿ ∩εδ≤≈Φ≥ τα∩≡ε±, εφα ∩≡ε±≥ε *±∞α⌡φσ≥* ∩≡Φ±Γεσφφ√σ http ταπεδεΓΩΦ Φ
- ∩≤±≥Φ≥ Φ⌡ Γ InputStream. ╥αΩΦ∞ εß≡ατε∞ Ωε∞∩εφσφ≥ Ωε≥ε≡√Θ Φ∞σσ≥ Γ⌡εΣφεΘ
- ∩ε≥εΩ Φ Σεδµσφ Γ√∩εδφ ≥ⁿ getImage(url) ≥σ∩σ≡ⁿ ∞εµσ≥ ß√≥ⁿ Γ√τΓαφ:
-
- Toolkit.getImage("localhost:8765/")
-
-
- HΦ≥ⁿ ß≤Σσ≥ ΣσΘ±≥ΓεΓα≥ⁿ ΩαΩ αΣα∩≥σ≡ stream-to-url, Φ ß≤Σσ≥ Γ√ΓεΣΦ≥ⁿ φα ²Ω≡αφ
- Φτεß≡αµσφΦσ ∩ε ∞σ≡σ ±≈Φ≥√ΓαφΦ . ▌≥ε ΦτßαΓΦ≥ ┬α± ε≥ φαΣεßφε±≥Φ ∩≡ε≈σ±≥ⁿ 200K
- Σαφφ√⌡ Φτ JPEG ∩σ≡σΣ ≥σ∞, ΩαΩ ∞√ ±∞εµσ≥σ ≈≥ε-δΦßε Γ√Γσ±≥Φ φα ²Ω≡αφ.
-
- *(╫α±≥ⁿ 14) ╩αΩ τα∩Φ±√Γα≥ⁿ τΓ≤ΩΦ φα Java?
-
- [*] Java Media Framework ß≤Σσ≥ Φ∞σ≥ⁿ ∩εδφ≤■ ∩εΣΣσ≡µΩ≤ ²≥επε, φε ∩εΩα ²≥ε φσ
- ≥αΩ. JMF 1.0.1 ∩εΣΣσ≡µΦΓασ≥ δΦ°ⁿ ∩≡εΦπ≡√ΓαφΦσ τΓ≤Ωα.
- JMF 1.0.1 ∩≡ΦΓ ταφ Ω JDK 1.2, Φ Σε±≥≤∩σφ ΩαΩ ε≥Σσδⁿφ√Θ α∩ΣσΘ≥ Σδ JDK 1.1 Φ
- Netscape Communicator 4 ± Java 1.1.
- ─≡≤πΦσ ±αΘ≥√:
-
- ╠σµΣ≤ ≥σ∞, ±≤∙σ±≥Γ≤■≥ ≡ατ≡αßε≥ΩΦ Σδ Win95/NT Σε±≥≤∩φ√σ φα
- http://www.scrawl.com/store/. ╬φΦ ∩εΣΣσ≡µΦΓα■≥ 8, 16-ßΦ≥, ±≥σ≡σε,
- ∞εφε, 11025, 22050, 44100 Hz τα∩Φ±ⁿ/∩≡εΦπ≡√ΓαφΦσ, ταπ≡≤τΩ≤/τα∩Φ±ⁿ
- ⌠αΘδεΓ .WAV. ┬√ ∞εµσ≥σ ≥αΩµσ ∩ε≡≥Φ≡εΓα≥ⁿ Φ⌡ Σδ ┬α°σΘ ∩δα≥⌠ε≡∞√.
-
- *(╫α±≥ⁿ 14) ╚∞σσ≥ δΦ Java Γ±≥≡εσφφ≤■ ∩εΣΣσ≡µΩ≤ ε≥εß≡αµσφΦ HTML?
-
- [*] JDK 1.1 ∩εΣΣσ≡µΦΓασ≥ εß≡αßε≥Ω≤ HTML Φ±∩εδⁿτ≤ φσ±Γ ταφφ√Θ ± φΦ∞ ∩αΩσ≥
- JFC 1.1, ΦτΓσ±≥φ√Θ ≥αΩµσ ΩαΩ Swing. Swing ∩≡ΦΓ ταφ Ω JDK 1.2. ╬φ ∩εφΦ∞ασ≥
- ∩≡ε±≥σΘ°Φσ ²δσ∞σφ≥√ Γ HTML (π≡α⌠ΦΩα, ≥αßδΦ÷√, ≥σΩ±≥), Ωε≥ε≡√⌡ Γ∩εδφσ
- Σε±≥α≥ε≈φε Σδ εß√≈φεΘ ≡αßε≥√(⌠αΘδ√ ΣεΩ≤∞σφ≥α÷ΦΦ, ²δ. ∩ε≈≥α, Φ Σ≡.)
- ─≡≤πΦσ ±±√δΩΦ:
-
- * JavaBrowser http://www.ii.uib.no/~alexey/jb/index.html ╬≥Ω≡√≥√Θ ΩεΣ,
- ßσ±∩δα≥φε Σδ Φ±∩εδⁿτεΓαφΦ ∩εΣ GNU LGPL δΦ÷σφτΦσΘ, HTML 2.0 (Γσ≡±Φ
- ±≥αφΣα≡≥α).
- * ICE Browser - Java Bean Component http://www.icesoft.no/ICEBrowser/
- ╤ΓεßεΣφε Γ ±εß≡αφφε∞ ΓΦΣσ Σδ Φ±∩εδⁿτεΓαφΦ Γ ßσ±∩δα≥φ√⌡ ∩≡ΦδεµσφΦ ⌡.
- ╩ε∞∞σ≡≈σ±Ωα δΦ÷σφτΦ Σε±≥≤∩φα ΓΩδ■≈α Φ±⌡εΣφ√Θ ΩεΣ - δΦ÷σφτΦ τα
- φσßεδⁿ°Φσ ΣσφⁿπΦ. ╠αδσφⁿΩΦΘ HTML ΩδΦσφ≥! Lightweight! HTML 3.2
- * HotJava HTML Component - Java Bean Component
- http://www.javasoft.com/products/hotjava/bean/index.html $195 τα
- δΦ≈φεσ Φ±∩εδⁿτεΓαφΦσ δΦ÷σφτΦΦ φα ∩≡επ≡α∞∞≤. HTML 3.2
- * HTML browser (ε≥Ω≡√≥√Θ ΩεΣ)
- http://barium.tn.tudelft.nl/people/gool/java/html/Html.html
- * Web Window Browser http://www.opencube.com/example_wwb.htm $139 - ßστ
- Φ±⌡εΣφεπε ΩεΣα.
- * jHelp ($20-650) http://w3.nai.net/~rvdi/jhelp/jhelp2/jhelp.html jHelp
- ²≥ε Ωε∞∩εφσφ≥ HTML ß≡α≤τσ≡α φα∩Φ±αφφ√Θ φα Java, HTML 2.0
-
- *(╫α±≥ⁿ 14) ▀ ταπ≡≤τΦδ Ωα≡≥ΦφΩ≤ Φτ JPEG/GIF ⌠αΘδα Φ±∩εδⁿτ≤ ∞σ≥εΣ
- Toolkit/Applet.createImage(URL/String), Φ (Γ√±ε≥α Φ °Φ≡Φφα -1) ²≥ε φσ
- Γ√ΓεΣΦ≥± φα ²Ω≡αφ. ╧ε≈σ∞≤?
-
- [*] AWT ∩ε ≤∞εδ≈αφΦ■ Γ ²≥ε∞ ±δ≤≈ασ φΦ≈σπε φσ Σσδασ≥.
- ╩επΣα Ωα≡≥ΦφΩα Γ∩σpΓ√σ Γ√ΓεΣΦ≥ⁿ± ± Φ±∩εδⁿτεΓαφΦσ∞ Component.drawImage(),
- ΦδΦ σσ ≡ατ∞σ≡ τα∩≡ε°σφ, Φτεß≡αµσφΦσ φα≈Φφασ≥ ταπ≡≤µα≥ⁿ± Γ Σp≤πεΘ φΦ≥Φ
- (Thread).
- ┬ε Γpσ∞ ταπp≤τΩΦ ΦτεßpαµσφΦ , ImageObserver, ε∩pσΣσδσφφ√Θ Γ εßpα∙σφΦΦ Ω
- drawImage()/getHeight(), ß≤Σσ≥ ∩σpΦεΣΦ≈σ±ΩΦ Φφ⌠εp∞ΦpεΓα≥ⁿ± ε ±≥α≥≤±σ
- ταπp≤τΩΦ ΦτεßpαµσφΦ , ∩≤≥σ∞ Γ√τεΓα imageUpdate() ∞σ≥εΣα.
- ┬ ±δ≤≈ασ Γ√τεΓα Component.drawImage(), ∩ε ≤∞εδ≈αφΦ■ Component.imageUpdate()
- Σεδµσφ ∩δαφΦpεΓα≥ⁿ *Σε∩εδφΦ≥σδⁿφ√Θ* Γ√τεΓ repaint(), ΩεπΣα ΦτεßpαµσφΦσ
- ß≤Σσ≥ ∩εδφε±≥ⁿ■ ταπp≤µσφε. ▌≥ε ετφα≈ασ≥, φα∩pΦ∞σp, ≈≥ε ±δσΣ≤■∙ΦΘ ΩεΣ φσ
- ß≤Σσ≥ pαßε≥α≥ⁿ:
-
- class MyComponent extends Component {
- ...
- public void paint(Graphics g) {
- ImageFilter cropper=new CropImageFilter(0,0,16,16);
- Image cropped_image=createImage(new
- FilteredImageSource(image.getSource(),cropper));
- g.drawImage(image,10,400,this); // ²≥α ±≥pεΩα ≡αßε≥ασ≥
- // α ²≥α φσ ≡αßε≥ασ≥ -
- g.drawImage(cropped_image,400,15,this);
- }
- }
-
-
- cropped_image φσ ß≤Σσ≥ πε≥εΓ Σδ ≡Φ±εΓαφΦ , φε ΩεπΣα εφ ∩εδφε±≥ⁿ■
- ±ετΣα±≥± , ∩pεΦτεΘΣσ≥ Γ√τεΓ repaint(), α ≥α∞ σ∙σ pατ cropped_image
- ±ετΣασ≥± (≤≤≤, ßα≥σφⁿΩα...) Φ ≥αΩ Σαδσσ.
- (╬ßpα≥Φ≥σ ΓφΦ∞αφΦσ φα ≥ε, ≈≥ε ±ετΣαφΦσ εß·σΩ≥εΓ ∩εΣεßφε ≥ε∞≤, ΩαΩ Γ ∞σ≥εΣσ
- paint(), Γδ σ≥± ε≈σφⁿ ∩δε⌡Φ∞ ±≥Φδσ∞. ╥αΩ ΩαΩ ²≥ε ß≤Σσ≥ ∩pεΦ±⌡εΣΦ≥ⁿ
- ΣεΓεδⁿφε ≈α±≥ε, pαßε≥√ ∩ε ±ßεpΩσ ∞≤±εpα ≤ jvm ß≤Σσ≥ ∞φεπε.
- ╫≥εß√ εßεΘ≥Φ ²≥≤ ∩≡εßδσ∞≤, ┬√ ∞εµσ≥σ I) ΣεßαΓΦ≥ⁿ Γ±σ ≥αΩΦσ Φτεß≡αµσφΦ Γ
- MediaTracker Φ Γ√τ√Γα≥ⁿ ∞σ≥εΣ waitForAll(). II) Γ√∩εδφΦ≥ⁿ ±ΓεΘ ±εß±≥Γσφφ√Θ
- ImageObserver Φφ≥σ≡⌠σΘ± Φ ∩εΣεµΣα≥ⁿ ΩεπΣα ∞σ≥εΣ imageUpdate() ß≤Σσ≥ Γ√τΓαφ
- ±ε τφα≈σφΦσ∞ ALLBITS/FRAMEBITS. I) δσπ≈σ, φε II) ≡σΩε∞σφΣ≤σ≥± , Φτ-τα
- ∩ε ΓΦΓ°Φ⌡± Σαφφ√⌡ ε ≥ε∞, ≈≥ε MediaTracker φσ ≡αßε≥ασ≥ Γ φσΩε≥ε≡√⌡ ±≡σΣα⌡.
- ╤∞ε≥≡Φ≥σ ≥αΩµσ Γ ²≥ε∞ FAQ:
-
- * ╤∞ε≥≡Φ≥σ ≥αΩµσ Q13.12
- * ╧ε±∞ε≥≡Φ≥σ Q6.4 Σδ ∩≡Φ∞σ≡εΓ ΩαΩ ∩σ≡σΦ±∩εδⁿτεΓα≥ⁿ εß·σΩ≥√.
-
- *(╫α±≥ⁿ 14) ╩αΩ ∞φσ τα∩Φ±α≥ⁿ τΓ≤Ω Γ α∩∩δσ≥σ?
-
- [*] ┼±δΦ ≤ ┬α± Win95/NT, ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ SoundBite - └≤ΣΦΦε ╟α∩Φ±ⁿ Γ
- └∩∩δσ≥α⌡ ╤∞. http://www.scrawl.com/store/
- ╬φ εßσ±∩σ≈ΦΓασ≥ ∩≡ε±≥εΘ Σε±≥≤∩ Ω α≤ΣΦε Σαφφ√∞ Γ ∞α±±ΦΓα⌡:
- short[] left, right;
-
- *(╫α±≥ⁿ 14) Java ∩εΣΣσ≡µΦΓασ≥ PNG? ─α. PNG - Portable Network Graphics -
- εßσ±∩σ≈ΦΓασ≥ ßσ±∩α≥σφ≥φ≤■ τα∞σφ≤ Σδ GIFεΓ Φ TIFFεΓ. ┼±δΦ ┬√ ±ε⌡≡αφ σ≥σ Γ
- GIF, ≥ε φσ ταß≤Σⁿ≥σ ε∩δα≥Φ≥ⁿ αΓ≥ε≡±ΩΦΘ πεφε≡α≡ ⌠Φ≡∞σ Unisys - ±∞. Φ⌡
- ±≥≡αφΦ÷≤ http://www.unisys.com/LeadStory/lzwfaq.html. ▌≥ε≥ ∩α≥σφ≥ εß ±φ σ≥
- ∩ε≈σ∞≤ GIF√ - ²≥ε ∩δε⌡εΘ Γ√ßε≡ Σδ ±ετΣαφΦ Φφ≥σ≡φσ≥εΓ±ΩΦ⌡ Φτεß≡αµσφΦΘ.
-
- PNG ⌠ε≡∞α≥ ε∩≡σΣσδσφ Γ RFC 1950, 1951, 2083, φσ εß≡σ∞σφσφφ√⌡ δΦ÷σφτΦ ∞Φ ΦδΦ
- ∩α≥σφ≥α∞Φ. ╤∞. ≥αΩµσ ±∩σ÷Φ⌠ΦΩα÷Φ■ PNG-1.1 φα
- ftp://swrinde.nde.swri.edu/pub/png/documents.
-
- PNG ⌠ε≡∞α≥ ∩εΣΣσ≡µΦΓασ≥± Java Advanced Imaging API, Ωε≥ε≡√Θ Γδ σ≥±
- ≈α±≥ⁿ■ Java 1.2 media API.
-
- ------------------------------
-
- 15. ╨αßε≥α Γ ±σ≥Φ Φ ≡α±∩≡σΣσδσφφ√σ εß·σΩ≥√
-
- ╤≥α≥ⁿΦ ε RMI
-
- 1. (╫α±≥ⁿ 15) ─εδµσφ δΦ Γ∞σ±≥ε RMI Φ±∩εδⁿτεΓα≥ⁿ CORBA? ╚δΦ Φ±∩εδⁿτεΓα≥ⁿ
- DCOM? ╚δΦ ≈σπε-φΦß≤Σⁿ σ∙σ?
-
- [*] ┼±δΦ ┬α°Φ ≡α±∩≡σΣσδσφφ√σ ∩≡επ≡α∞∞√ ÷σδΦΩε∞ φα∩Φ±αφ√ φα Java, ≥ε
- RMI εßσ±∩σ≈ΦΓασ≥ ßεδσσ ∩≡ε±≥εΘ ∞σ⌡αφΦτ∞, Ωε≥ε≡√Θ ∩ετΓεδ σ≥ ∩σ≡σ±√δΩ≤
- Σαφφ√⌡, Φ±⌡εΣ ∙Φ⌡ ε≥ ≡σαδⁿφ√⌡ Java εß·σΩ≥εΓ, Φ αΓ≥ε∞α≥Φ≈σ±Ω≤■ "±ßε≡Ω≤
- ∞≤±ε≡α" ≤Σαδσφφ√⌡ εß·σΩ≥εΓ.
- ┼±δΦ ┬α∞ φ≤µφε ∩εΣΩδ■≈Φ≥ⁿ± Ω ±Φ±≥σ∞σ φα C++ (ΦδΦ Σ≡≤πε∞ τ√Ωσ) ΦδΦ
- ┬α∞ φ≤µφ√ ±∩σ÷Φ⌠Φ≈σ±ΩΦσ CORBA ±δ≤µß√, ≥ε CORBA - ┬α° Γ√ßε≡.
- ┬ Φ■δσ 1997 πεΣα Sun αφεφ±Φ≡εΓαδα ≥ε≥ ⌠αΩ≥, ≈≥ε RMI φα≈αδα ßεδσσ ≥σ±φε
- ≡αßε≥α≥ⁿ ± CORBA. Sun ∩≡ε±≥ε ΣεßαΓΦδα Γ RMI ≥≡αφ±∩ε≡≥φ√Θ ≤≡εΓσφⁿ IIOP
- Σδ ∩εΣΣσ≡µΩΦ ΓταΦ∞εΣσΘ±≥ΓΦ ± CORBA. Java ∩≡επ≡α∞∞√ ∞επ≤≥
- Φ±∩εδⁿτεΓα≥ⁿ RMI Σδ Σε±≥≤∩α Ω CORBA εß·σΩ≥α∞ ≈σ≡στ IIOP, - ∩≡ε≥εΩεδσ
- ε±φεΓαφφε∞ φα CORBA Φ ≡ατ≡αßε≥αφφε∞ OMG (Object Management Group). ▌≥ε
- ε≈σφⁿ ⌡ε≡ε°α φεΓε±≥ⁿ Σδ ≥σ⌡, Ω≥ε ±≥≡εΦ≥ πσ≥σ≡επσφφ√σ ±Φ±≥σ∞√
- ∞α±°≥αßα ∩≡σΣ∩≡Φ ≥Φ , ⌡ε≥ φ≤µφ√ φσΩε≥ε≡√σ ΣεßαΓδσφΦ Ω IIOP Σδ
- ∩εΣΣσ≡µΩΦ Γσ∙σΘ, Ωε≥ε≡√σ Φ±∩εδⁿτ≤σ≥ RMI.
- ─σ ≥σδΦ Φτ Microsoft ∩√≥αδΦ±ⁿ ∩≡εΣΓΦπα≥ⁿ DCOM τα Γδ ε ≥ε∞, ≈≥ε RMI
- Φτ∞σφ σ≥± ΦδΦ ΣεµΦΓασ≥ ∩ε±δσΣφΦσ ΣφΦ. ▌≥ε Γ Ωε≡φσ φσΓσ≡φε. RMI API
- ε±≥ασ≥± φσΦτ∞σφφεΘ Γ ±ΓεσΘ ≥σΩ≤∙σΘ ⌠ε≡∞σ. ╚±∩εδⁿτεΓαφΦσ DCOM
- επ≡αφΦ≈ΦΓασ≥ ┬α± ≥σ∞, ≈≥ε ΩεΣ ≡αßε≥ασ≥ ≥εδⁿΩε φα ∩δα≥⌠ε≡∞σ Wintel, Φ
- ∩εδφε±≥ⁿ■ ε≥≡Φ÷ασ≥ ⌠Φδε±ε⌠Φ■ Java "write once, run anywhere"
- ("φα∩Φ±αφε εΣφαµΣ√, Φ±∩εδφ σ≥± ΓστΣσ"). ┬√ Σεδµφσ ß≤Σσ≥σ
- ∩σ≡σΩε∞∩ΦδΦ≡εΓα≥ⁿ ┬α° DCOM ΩεΣ, ≈≥εß√ εφ ≡αßε≥αδ φα Σ≡≤πεΘ
- Microsoft'εΓ±ΩεΘ ∩δα≥⌠ε≡∞σ, ≥Φ∩α Compaq (ß√Γ°σπε DEC) Alpha. ┬√ Σεδµφ√
- ε±≥σ≡σπα≥ⁿ± Φ±∩εδⁿτεΓαφΦ φσ∩σ≡σφε±Φ∞επε, ταΓ ταφφεπε φα εΣφε∞
- ∩≡εΦτΓεΣΦ≥σδσ ΩεΣα. DCOM/DNA Φ∞σσ≥ επ≡αφΦ≈σφΦ Σδ Φ±∩εδⁿτεΓαφΦ φα
- ∩≡σΣ∩≡Φ ≥ΦΦ.
- ─≡≤πΦσ ±αΘ≥√:
- http://www.javaworld.com/javaworld/jw-10-1997/jw-10-corbajava.html
- ²≥ε ⌡ε≡ε°σσ ΓΓσΣσφΦσ Γ CORBA Γ ∞Φ≡σ Java.
- http://www.objenv.com/cetus ±≡αΓφσφΦσ CORBA/RMI.
-
- 2. (╫α±≥ⁿ 15) ╩αΩ ∞φσ τα±≥αΓΦ≥ⁿ ≡αßε≥α≥ⁿ RMI ∞σµΣ≤ ≡ατφ√∞Φ Σε∞σφα∞Φ?
-
- [*] ┬±σ ε≥Γσ≥√ φα Γε∩≡ε±√, ε≥φε± ∙Φσ± Ω ∩≡εΩ±Φ ∩≡ΦΓσΣσφ√ φΦµσ. ┬√
- Σεδµφ√ ±εεß∙Φ≥ⁿ ∩≡επ≡α∞∞σ πΣσ Φ±Ωα≥ⁿ ±σ≡Γσ≡. ┬ ²≥ε∞ ±δ≤≈ασ ┬√ Σεδµφ√
- τα∩≤±Ωα≥ⁿ ΩδΦσφ≥α ± ε∩÷ΦσΘ:
- -Djava.rmi.server.hostname=hostname.domainname
-
- 3. (╫α±≥ⁿ 15) ╠φσ Ωαµσ≥± , ≈≥ε RMI ε±≥αφαΓδΦΓασ≥ ±Γε■ ≡αßε≥≤ Γ JDK 1.1.
- ╧ε≈σ∞≤ ≥αΩεσ ∩≡εΦ±⌡εΣΦ≥?
-
- [*] ╧ε⌡εµσ ≈≥ε Φτ∞σφΦδΦ±ⁿ ∩≡αΓΦδα ≥επε, πΣσ ΩδΦσφ≥ Φ∙σ≥ stub
- Ωδα±±(Ωδα±±-ταπδ≤°Ω≤), Σσδα φσεß⌡εΣΦ∞√∞ ±ß≡ε± ┬α°σπε class path φα
- ΩδΦσφ≥σ ∩ε±δσ ±≥α≡≥α RMI registry. ┬ ≈α±≥φε±≥Φ, ∩ε⌡εµσ φα ≥ε, ≈≥ε rmic
- φσ ß√δ εßφεΓδσφ Σδ φεΓεπε ±επδα°σφΦ "don't need $CLASSPATH for
- current dir" ("φσ φ≤µσφ $CLASSPATH Σδ ≥σΩ≤∙σπε Ωα≥αδεπα"), Γ ≥ε Γ≡σ∞
- ΩαΩ Ωε∩∞∩Φδ ≥ε≡ ß√δ εßφεΓδσφ. ┬α∞ δ≤≈°σ Γφε ±φ ≥ⁿ ≤±≥αφεΓΩΦ
- classpath.
- ─≡≤πΦσ ±αΘ≥√:
- ┼±≥ⁿ φσ±ΩεδⁿΩε ε≈σφⁿ ⌡ε≡ε°Φ⌡ Φ±≥ε≈φΦΩεΓ ε≥ Sun, Ωε≥ε≡√σ ε⌡Γα≥√Γα■≥
- ∞φεπε ∩≡ε±≥√⌡ Φ ±δεµφ√⌡ RMI ∩≡εßδσ∞.
- o ╩εφσ≈φε, ΣεΩ≤∞σφ≥α÷Φ :
- http://java.sun.com/products/jdk/1.1/docs/guide/rmi/index.html
- o FAQΦ ∩ε±Γ ∙σφφ√σ RMI Φ ±σ≡ΦαδΦτα÷ΦΦ εß·σΩ≥εΓ
- http://java.sun.com/products/jdk/rmi/faq.html
- o ╤∩Φ±εΩ ≡α±±√δΩΦ RMI-USERS@JAVASOFT.COM, α≡⌡ΦΓ Ωε≥ε≡επε φα⌡εΣΦ≥±
- φα http://chatsubo.javasoft.com/email/rmi-users/ ╧ε±σ≥Φ≥σ α≡⌡ΦΓ!
-
- 4. (╫α±≥ⁿ 15) ╧ε±δσ ε∩≡σΣσδσφφεπε ≈Φ±δα ±εσΣΦφσφΦΘ ΩδΦσφ≥εΓ RMI Ω ±σ≡Γσ≡≤
- (55 φα ∞εσΘ ±Φ±≥σ∞σ), ∩ε±δσΣ≤■∙Φσ ∩ε∩√≥ΩΦ RMI ±εσΣΦφσφΦ φσ≤Σα≈φ√.
- ╧ε≈σ∞≤?
-
- [*] ┬√ Φ±∩εδⁿτεΓαδΦ δΦ∞Φ≥ ∩ε ≤∞εδ≈αφΦ■ Γ 64 Σσ±Ω≡Φ∩≥ε≡α ε≥Ω≡√≥√⌡
- ⌠αΘδεΓ. ╧ε∩√≥αΘ≥σ±ⁿ ≤ΓσδΦ≈Φ≥ⁿ δΦ∞Φ≥ Γ ┬α°σΘ ╬╤.
- ╤≤∙σ±≥Γ≤σ≥ ∩≡αΩ≥Φ≈σ±ΩΦΘ δΦ∞Φ≥ RMI ±εσΣΦφσφΦΘ, Ωε≥ε≡√Θ φαδαπασ≥±
- ∞α±°≥αßΦ≡≤σ∞ε±≥ⁿ■ ΓΦΦ≡≥≤αδⁿφεΘ ∞α°Φφ√ Φ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥ⁿ■
- ±σ≡ΦαδΦτα÷ΦΦ εß·σΩ≥εΓ. ▌≥ε Γ±σ Φ±∩≡αΓδσφε Γ JDK 1.2. └Ω≥≤αδⁿφεσ ≈Φ±δε
- αΩ≥ΦΓφ√⌡ ΩδΦσφ≥εΓ, Ωε≥ε≡εσ ┬√ ∞εµσ≥σ εß±δ≤µΦΓα≥ⁿ ß≤Σσ≥ ταΓΦ±σ≥ⁿ ε≥
- ±≤∞∞α≡φεΘ ταπ≡≤τΩΦ (workload mix) (≥.σ. ε≥ ≈Φ±δα ΩδΦσφ≥εΓ, ΩαΩ ≈α±≥ε
- εφΦ εß≡α∙α■≥± Ω ±σ≡Γσ≡≤, Φ ±ΩεδⁿΩε ≡αßε≥√ Γ√∩εδφ σ≥± ∩≡Φ εΣφε∞
- εß≡α∙σφΦΦ).
-
- 5. (╫α±≥ⁿ 15) ▀ Φ±∩εδⁿτ≤■ RMI ∩εΣ Win95, Φ Γ√τεΓ Naming.lookup()
- Γ√∩εδφ σ≥± ε≈σφⁿ Σεδπε. ╩αΩ ε≥ ²≥επε ΦτßαΓΦ≥ⁿ± ?
-
- [*] (╤∞. ≥αΩµσ ∩σ≡Γ√Θ ε≥Γσ≥ Γ φΦµσ±δσΣ≤■∙σΘ ±σΩ÷ΦΦ, Φ ε≥∞σ≥ⁿ≥σ, ≈≥ε
- ²≥α Σε≡αßε≥Ωα Γ Windows ≤ φσΩε≥ε≡√⌡ φΦΩεπΣα φσ ≡αßε≥ασ≥) ╧ε∩√≥αΘ≥σ±ⁿ
- ΣεßαΓΦ≥ⁿ τα∩Φ±ⁿ ε ∞α°Φφσ Γ ┬α° ⌠αΘδ "hosts". ╬ß√≈φε ²≥ε≥ ⌠αΘδ
- φατ√Γασ≥± c:\windows\hosts (σ±δΦ εφ φσ ±≤∙σ±≥Γ≤σ≥, ≥ε Σεδµσφ ß√≥ⁿ
- ⌠αΘδ c:\windows\hosts.sam). ╘αΘδ hosts Φ∙σ≥± ±≥σΩε∞ TCP/IP ∩σ≡σΣ
- εß≡α∙σφΦσ∞ Ω DNS, ≥αΩΦ∞ εß≡ατε∞ ΣεßαΓδσφΦσ τα∩Φ±Φ ∞εµσ≥ τφα≈Φ≥σδⁿφε
- ≤±Ωε≡Φ≥ⁿ ┬α°Φ ∩εΦ±ΩΦ (lookups). ╘αΘδ hosts Φ±∩εδⁿτ≤σ≥± ≈≥εß√ ε≥≡ατΦ≥ⁿ
- ÷Φ⌠≡εΓ√σ IP αΣ≡σ±α φα ±Φ∞Γεδⁿφ√σ. ╫≥εß√ ─δ ≥επε, ≈≥εß√ ≤Ωατα≥ⁿ Φ∞
- ⌡ε±≥α "localhost" ± αΣ≡σ±ε∞ 127.0.0.1 (IP loopback αΣ≡σ±) ΣεßαΓⁿ≥σ
- ±δσΣ≤■∙≤■ ±≥≡ε≈Ω≤ Γ ┬α° ⌠αΘδ hosts.
-
- 127.0.0.1 localhost
-
- ╨αßε≥α ± ±σ≥ⁿ■ Γ Windows
-